summaryrefslogtreecommitdiff
path: root/lib/sdp.c
diff options
context:
space:
mode:
authorSlawomir Bochenski <lkslawek@gmail.com>2012-01-24 14:22:43 +0100
committerJohan Hedberg <johan.hedberg@intel.com>2012-06-28 13:51:00 +0300
commit2053eeda325bc3f93359f8a3af780ac7c0f991f6 (patch)
treefd168318c91b3f559dbaafd0d51ebdc712ee3dcb /lib/sdp.c
parent256fde4f35ad1621c4a493750a46a7b81ff192c9 (diff)
downloadbluez-2053eeda325bc3f93359f8a3af780ac7c0f991f6.tar.gz
lib/sdp.c: Prevent passing unitialised argument
In case of sdp_seq_alloc() failures in loop, unitialised seqDTDs would be passed to final sdp_seq_alloc.
Diffstat (limited to 'lib/sdp.c')
-rw-r--r--lib/sdp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/sdp.c b/lib/sdp.c
index 7cb930fc4..497a058ec 100644
--- a/lib/sdp.c
+++ b/lib/sdp.c
@@ -2525,11 +2525,15 @@ int sdp_set_profile_descs(sdp_record_t *rec, const sdp_list_t *profiles)
dtds[1] = &uint16;
values[1] = &profile->version;
seq = sdp_seq_alloc(dtds, values, 2);
- if (seq) {
- seqDTDs[i] = &seq->dtd;
- seqs[i] = seq;
- sdp_pattern_add_uuid(rec, &profile->uuid);
+
+ if (seq == NULL) {
+ status = -1;
+ break;
}
+
+ seqDTDs[i] = &seq->dtd;
+ seqs[i] = seq;
+ sdp_pattern_add_uuid(rec, &profile->uuid);
i++;
}
if (status == 0) {