Ganesh Murthy created DISPATCH-647:
--------------------------------------

             Summary: Coverity scan reported memory leaks in Qpid Dispatch 
master
                 Key: DISPATCH-647
                 URL: https://issues.apache.org/jira/browse/DISPATCH-647
             Project: Qpid Dispatch
          Issue Type: Bug
          Components: Container
    Affects Versions: 0.8.0
            Reporter: Ganesh Murthy
            Assignee: Ganesh Murthy


** CID 142259:  Memory - corruptions  (USE_AFTER_FREE)
/home/kgiusti/tmp/qpid-dispatch/src/posix/driver.c: 836 in qdpn_driver_free()


________________________________________________________________________________________________________
*** CID 142259:  Memory - corruptions  (USE_AFTER_FREE)
/home/kgiusti/tmp/qpid-dispatch/src/posix/driver.c: 836 in qdpn_driver_free()
830     void qdpn_driver_free(qdpn_driver_t *d)
831     {
832         if (!d) return;
833    
834         close(d->efd);
835         while (DEQ_HEAD(d->connectors))
>>>     CID 142259:  Memory - corruptions  (USE_AFTER_FREE)
>>>     Calling "qdpn_connector_free" frees pointer "d->connectors.head" which 
>>> has already been freed.
836             qdpn_connector_free(DEQ_HEAD(d->connectors));
837         while (DEQ_HEAD(d->listeners))
838             qdpn_listener_free(DEQ_HEAD(d->listeners));
839         free(d->fds);
840         sys_mutex_free(d->lock);
841         free(d);

** CID 142258:  Uninitialized variables  (UNINIT)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 192 in print_parsed_field()


________________________________________________________________________________________________________
*** CID 142258:  Uninitialized variables  (UNINIT)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 192 in print_parsed_field()
186                     if (timestamp_length > 0) {
187                         // Gather the timestamp bytes into the 
timestamp_bytes array, so we process them later into time.
188                         timestamp_bytes[--timestamp_length] = byte;
189                     }
190                }
191    
>>>     CID 142258:  Uninitialized variables  (UNINIT)
>>>     Using uninitialized element of array "timestamp_bytes" when calling 
>>> "memcpy".
192                memcpy(&creation_timestamp, timestamp_bytes, 8);
193                if (creation_timestamp > 0) {
194                    format_time(creation_timestamp, "%Y-%m-%d 
%H:%M:%S.%%03lu %z", creation_time, 100);
195                    aprintf(begin, end, "%s", creation_time);
196                }
197                break;

** CID 142257:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 142 in test_trim()


________________________________________________________________________________________________________
*** CID 142257:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 142 in test_trim()
136     static char *test_trim(void *context)
137     {
138         qd_iterator_t *iter = qd_iterator_string("testing.trim", 
ITER_VIEW_ALL);
139    
140         qd_iterator_trim_view(iter, 7);
141         if (!qd_iterator_equal(iter, (unsigned char*) "testing"))
>>>     CID 142257:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
142             return "Trim on ITER_VIEW_ALL failed (1)";
143    
144         qd_iterator_reset_view(iter, ITER_VIEW_ALL);
145         if (!qd_iterator_equal(iter, (unsigned char*) "testing.trim"))
146             return "Trim on ITER_VIEW_ALL failed (2)";
147    

** CID 142256:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()


________________________________________________________________________________________________________
*** CID 142256:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
187         qd_iterator_t *sub1 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
188         qd_iterator_advance(iter, 5);
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
>>>     CID 142256:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "sub3" going out of scope leaks the storage it points to.
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    

** CID 142255:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 151 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 161 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 170 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 183 in test_map()


________________________________________________________________________________________________________
*** CID 142255:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 151 in test_map()
145         }
146    
147         qd_parsed_field_t *key_field  = qd_parse_sub_key(field, 0);
148         qd_iterator_t     *key_iter   = qd_parse_raw(key_field);
149         qd_iterator_t     *typed_iter = qd_parse_typed(key_field);
150         if (!qd_iterator_equal(key_iter, (unsigned char*) "first")) {
>>>     CID 142255:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by 
>>> "qd_iterator_copy(key_iter)" leaks it.
151             snprintf(error, 1000, "First key: expected 'first', got '%s'", 
qd_iterator_copy(key_iter));
152             return error;
153         }
154         if (!qd_iterator_equal(typed_iter, (unsigned char*) 
"\xa3\x05\x66irst"))
155             return "Incorrect typed iterator on first-key";
156    
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 161 in test_map()
155             return "Incorrect typed iterator on first-key";
156    
157         qd_parsed_field_t *val_field = qd_parse_sub_value(field, 0);
158         qd_iterator_t     *val_iter  = qd_parse_raw(val_field);
159         typed_iter = qd_parse_typed(val_field);
160         if (!qd_iterator_equal(val_iter, (unsigned char*) 
"value_of_first")) {
>>>     CID 142255:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by 
>>> "qd_iterator_copy(val_iter)" leaks it.
161             snprintf(error, 1000, "First value: expected 'value_of_first', 
got '%s'", qd_iterator_copy(val_iter));
162             return error;
163         }
164         if (!qd_iterator_equal(typed_iter, (unsigned char*) 
"\xa1\x0evalue_of_first"))
165             return "Incorrect typed iterator on first-key";
166    
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 170 in test_map()
164         if (!qd_iterator_equal(typed_iter, (unsigned char*) 
"\xa1\x0evalue_of_first"))
165             return "Incorrect typed iterator on first-key";
166    
167         key_field = qd_parse_sub_key(field, 1);
168         key_iter  = qd_parse_raw(key_field);
169         if (!qd_iterator_equal(key_iter, (unsigned char*) "second")) {
>>>     CID 142255:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by 
>>> "qd_iterator_copy(key_iter)" leaks it.
170             snprintf(error, 1000, "Second key: expected 'second', got 
'%s'", qd_iterator_copy(key_iter));
171             return error;
172         }
173    
174         val_field = qd_parse_sub_value(field, 1);
175         if (qd_parse_as_uint(val_field) != 32) {
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 183 in test_map()
177             return error;
178         }
179    
180         key_field = qd_parse_sub_key(field, 2);
181         key_iter  = qd_parse_raw(key_field);
182         if (!qd_iterator_equal(key_iter, (unsigned char*) "third")) {
>>>     CID 142255:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by 
>>> "qd_iterator_copy(key_iter)" leaks it.
183             snprintf(error, 1000, "Third key: expected 'third', got '%s'", 
qd_iterator_copy(key_iter));
184             return error;
185         }
186    
187         val_field = qd_parse_sub_value(field, 2);
188         if (!qd_parse_as_bool(val_field)) {

** CID 142254:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()


________________________________________________________________________________________________________
*** CID 142254:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()
308    
309         qd_parsed_field_t *parsed_field = qd_parse(iter);
310    
311         // If there is a problem with parsing a field, just return
312         if (!qd_parse_ok(parsed_field)) {
313             aprintf(begin, end, "%s", post);
>>>     CID 142254:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
314             return;
315         }
316    
317         print_parsed_field(parsed_field, begin, end, max);
318    
319         aprintf(begin, end, "%s", post);
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()
308    
309         qd_parsed_field_t *parsed_field = qd_parse(iter);
310    
311         // If there is a problem with parsing a field, just return
312         if (!qd_parse_ok(parsed_field)) {
313             aprintf(begin, end, "%s", post);
>>>     CID 142254:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
314             return;
315         }
316    
317         print_parsed_field(parsed_field, begin, end, max);
318    
319         aprintf(begin, end, "%s", post);

** CID 142253:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 195 in test_sub_iterator()


________________________________________________________________________________________________________
*** CID 142253:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
187         qd_iterator_t *sub1 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
188         qd_iterator_advance(iter, 5);
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
>>>     CID 142253:    (RESOURCE_LEAK)
>>>     Variable "sub1" going out of scope leaks the storage it points to.
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 195 in test_sub_iterator()
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
>>>     CID 142253:    (RESOURCE_LEAK)
>>>     Variable "sub1" going out of scope leaks the storage it points to.
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    
199         qd_iterator_free(iter);
200         qd_iterator_free(sub1);

** CID 142252:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 342 in 
test_view_address_with_space()
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 343 in 
test_view_address_with_space()


________________________________________________________________________________________________________
*** CID 142252:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 342 in 
test_view_address_with_space()
336             qd_iterator_t *iter = qd_iterator_buffer(DEQ_HEAD(chain), 0,
337                                                      
strlen(cases[idx].addr),
338                                                      
ITER_VIEW_ADDRESS_WITH_SPACE);
339             qd_iterator_annotate_space(iter, "space/", 6);
340             char *ret = view_address_hash(context, iter, cases[idx].addr, 
cases[idx].view);
341             release_buffer_chain(&chain);
>>>     CID 142252:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
342             if (ret) return ret;
343         }
344    
345         return 0;
346     }
347    
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 343 in 
test_view_address_with_space()
337                                                      
strlen(cases[idx].addr),
338                                                      
ITER_VIEW_ADDRESS_WITH_SPACE);
339             qd_iterator_annotate_space(iter, "space/", 6);
340             char *ret = view_address_hash(context, iter, cases[idx].addr, 
cases[idx].view);
341             release_buffer_chain(&chain);
342             if (ret) return ret;
>>>     CID 142252:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
343         }
344    
345         return 0;
346     }
347    
348    

** CID 142251:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 195 in test_sub_iterator()


________________________________________________________________________________________________________
*** CID 142251:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
187         qd_iterator_t *sub1 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
188         qd_iterator_advance(iter, 5);
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
>>>     CID 142251:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 195 in test_sub_iterator()
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
>>>     CID 142251:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    
199         qd_iterator_free(iter);
200         qd_iterator_free(sub1);

** CID 142250:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 397 in 
test_view_address_hash_with_space()


________________________________________________________________________________________________________
*** CID 142250:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 397 in 
test_view_address_hash_with_space()
391             qd_iterator_annotate_space(iter, "test.vhost.", 11);
392             if (!qd_iterator_equal(iter, (unsigned char*) cases[idx].view)) 
{
393                 char *got = (char*) qd_iterator_copy(iter);
394                 snprintf(fail_text, FAIL_TEXT_SIZE, "Addr '%s' failed.  
Expected '%s', got '%s' (len: %d)",
395                          cases[idx].addr, cases[idx].view, got, 
qd_iterator_length(iter));
396                 free(got);
>>>     CID 142250:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
397                 return fail_text;
398             }
399             qd_iterator_free(iter);
400         }
401    
402         return 0;

** CID 142249:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()


________________________________________________________________________________________________________
*** CID 142249:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/src/message.c: 314 in print_field()
308    
309         qd_parsed_field_t *parsed_field = qd_parse(iter);
310    
311         // If there is a problem with parsing a field, just return
312         if (!qd_parse_ok(parsed_field)) {
313             aprintf(begin, end, "%s", post);
>>>     CID 142249:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "parsed_field" going out of scope leaks the storage it points 
>>> to.
314             return;
315         }
316    
317         print_parsed_field(parsed_field, begin, end, max);
318    
319         aprintf(begin, end, "%s", post);

** CID 142248:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 135 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 139 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 144 in test_map()


________________________________________________________________________________________________________
*** CID 142248:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 135 in test_map()
129         int data_len = 50;
130    
131         qd_iterator_t     *data_iter = qd_iterator_binary(data, data_len, 
ITER_VIEW_ALL);
132         qd_parsed_field_t *field     = qd_parse(data_iter);
133         if (!qd_parse_ok(field)) {
134             snprintf(error, 1000, "Parse failed: %s", 
qd_parse_error(field));
>>>     CID 142248:    (RESOURCE_LEAK)
>>>     Variable "field" going out of scope leaks the storage it points to.
135             return error;
136         }
137    
138         if (!qd_parse_is_map(field))
139             return "Expected field to be a map";
140    
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 139 in test_map()
133         if (!qd_parse_ok(field)) {
134             snprintf(error, 1000, "Parse failed: %s", 
qd_parse_error(field));
135             return error;
136         }
137    
138         if (!qd_parse_is_map(field))
>>>     CID 142248:    (RESOURCE_LEAK)
>>>     Variable "field" going out of scope leaks the storage it points to.
139             return "Expected field to be a map";
140    
141         uint32_t count = qd_parse_sub_count(field);
142         if (count != 3) {
143             snprintf(error, 1000, "Expected sub-count==3, got %"PRIu32, 
count);
144             return error;
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 144 in test_map()
138         if (!qd_parse_is_map(field))
139             return "Expected field to be a map";
140    
141         uint32_t count = qd_parse_sub_count(field);
142         if (count != 3) {
143             snprintf(error, 1000, "Expected sub-count==3, got %"PRIu32, 
count);
>>>     CID 142248:    (RESOURCE_LEAK)
>>>     Variable "field" going out of scope leaks the storage it points to.
144             return error;
145         }
146    
147         qd_parsed_field_t *key_field  = qd_parse_sub_key(field, 0);
148         qd_iterator_t     *key_iter   = qd_parse_raw(key_field);
149         qd_iterator_t     *typed_iter = qd_parse_typed(key_field);

** CID 142247:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 917 in 
test_prefix_hash_with_space()
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 920 in 
test_prefix_hash_with_space()


________________________________________________________________________________________________________
*** CID 142247:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 917 in 
test_prefix_hash_with_space()
911             qd_hash_retrieve_prefihash, iter, &ptr);
912             int position = (int) ((long) ptr);
913             position--;
914             if (position != patterns[idx].entry) {
915                 snprintf(error, 200, "Pattern: '%s', expected %d, got %d",
916                          patterns[idx].pattern, patterns[idx].entry, 
position);
>>>     CID 142247:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
917                 return error;
918             }
919             idx++;
920         }
921    
922         return 0;
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 920 in 
test_prefix_hash_with_space()
914             if (position != patterns[idx].entry) {
915                 snprintf(error, 200, "Pattern: '%s', expected %d, got %d",
916                          patterns[idx].pattern, patterns[idx].entry, 
position);
917                 return error;
918             }
919             idx++;
>>>     CID 142247:    (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the storage it points to.
920         }
921    
922         return 0;
923     }
924    
925    

** CID 142246:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 135 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 139 in test_map()
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 144 in test_map()


________________________________________________________________________________________________________
*** CID 142246:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 135 in test_map()
129         int data_len = 50;
130    
131         qd_iterator_t     *data_iter = qd_iterator_binary(data, data_len, 
ITER_VIEW_ALL);
132         qd_parsed_field_t *field     = qd_parse(data_iter);
133         if (!qd_parse_ok(field)) {
134             snprintf(error, 1000, "Parse failed: %s", 
qd_parse_error(field));
>>>     CID 142246:    (RESOURCE_LEAK)
>>>     Variable "data_iter" going out of scope leaks the storage it points to.
135             return error;
136         }
137    
138         if (!qd_parse_is_map(field))
139             return "Expected field to be a map";
140    
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 139 in test_map()
133         if (!qd_parse_ok(field)) {
134             snprintf(error, 1000, "Parse failed: %s", 
qd_parse_error(field));
135             return error;
136         }
137    
138         if (!qd_parse_is_map(field))
>>>     CID 142246:    (RESOURCE_LEAK)
>>>     Variable "data_iter" going out of scope leaks the storage it points to.
139             return "Expected field to be a map";
140    
141         uint32_t count = qd_parse_sub_count(field);
142         if (count != 3) {
143             snprintf(error, 1000, "Expected sub-count==3, got %"PRIu32, 
count);
144             return error;
/home/kgiusti/tmp/qpid-dispatch/tests/parse_test.c: 144 in test_map()
138         if (!qd_parse_is_map(field))
139             return "Expected field to be a map";
140    
141         uint32_t count = qd_parse_sub_count(field);
142         if (count != 3) {
143             snprintf(error, 1000, "Expected sub-count==3, got %"PRIu32, 
count);
>>>     CID 142246:    (RESOURCE_LEAK)
>>>     Variable "data_iter" going out of scope leaks the storage it points to.
144             return error;
145         }
146    
147         qd_parsed_field_t *key_field  = qd_parse_sub_key(field, 0);
148         qd_iterator_t     *key_iter   = qd_parse_raw(key_field);
149         qd_iterator_t     *typed_iter = qd_parse_typed(key_field);

** CID 142245:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()


________________________________________________________________________________________________________
*** CID 142245:  Resource leaks  (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 193 in test_sub_iterator()
187         qd_iterator_t *sub1 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
188         qd_iterator_advance(iter, 5);
189         qd_iterator_t *sub2 = qd_iterator_sub(iter, 
qd_iterator_remaining(iter));
190         qd_iterator_t *sub3 = qd_iterator_sub(iter, 3);
191    
192         if (!qd_iterator_equal(sub1, (unsigned char*) "test_sub_iterator"))
>>>     CID 142245:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "sub2" going out of scope leaks the storage it points to.
193             return "Sub Iterator failed - 1";
194         if (!qd_iterator_equal(sub2, (unsigned char*) "sub_iterator"))
195             return "Sub Iterator failed - 2";
196         if (!qd_iterator_equal(sub3, (unsigned char*) "sub"))
197             return "Sub Iterator failed - 3";
198    

** CID 142244:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 917 in 
test_prefix_hash_with_space()
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 922 in 
test_prefix_hash_with_space()


________________________________________________________________________________________________________
*** CID 142244:    (RESOURCE_LEAK)
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 917 in 
test_prefix_hash_with_space()
911             qd_hash_retrieve_prefihash, iter, &ptr);
912             int position = (int) ((long) ptr);
913             position--;
914             if (position != patterns[idx].entry) {
915                 snprintf(error, 200, "Pattern: '%s', expected %d, got %d",
916                          patterns[idx].pattern, patterns[idx].entry, 
position);
>>>     CID 142244:    (RESOURCE_LEAK)
>>>     Variable "hash" going out of scope leaks the storage it points to.
917                 return error;
918             }
919             idx++;
920         }
921    
922         return 0;
/home/kgiusti/tmp/qpid-dispatch/tests/field_test.c: 922 in 
test_prefix_hash_with_space()
916                          patterns[idx].pattern, patterns[idx].entry, 
position);
917                 return error;
918             }
919             idx++;
920         }
921    
>>>     CID 142244:    (RESOURCE_LEAK)
>>>     Variable "hash" going out of scope leaks the storage it points to.
922         return 0;
923     }
924    
925    
926     int field_tests(void)
927     {





--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to