merged, thanks! Mathieu
----- On Sep 21, 2015, at 2:19 PM, Antoine Busque [email protected] wrote: > In lttng-ust-elf.c, static functions used to extract build ID or debug > link information had an extraneous `found` parameter, carrying no more > information than could be obtained by checking the other out > parameters against NULL. The resulting simplified logic should also > prevent static analysis tools from misidentifying resource leaks. > > Signed-off-by: Antoine Busque <[email protected]> > --- > liblttng-ust/lttng-ust-elf.c | 40 +++++++++++++++++----------------------- > 1 file changed, 17 insertions(+), 23 deletions(-) > > diff --git a/liblttng-ust/lttng-ust-elf.c b/liblttng-ust/lttng-ust-elf.c > index 4de380c..dcae966 100644 > --- a/liblttng-ust/lttng-ust-elf.c > +++ b/liblttng-ust/lttng-ust-elf.c > @@ -405,11 +405,10 @@ error: > static > int lttng_ust_elf_get_build_id_from_segment( > struct lttng_ust_elf *elf, uint8_t **build_id, size_t *length, > - off_t offset, off_t segment_end, int *found) > + off_t offset, off_t segment_end) > { > uint8_t *_build_id = NULL; /* Silence old gcc warning. */ > size_t _length = 0; /* Silence old gcc warning. */ > - int _found = 0; > > while (offset < segment_end) { > struct lttng_ust_elf_nhdr nhdr; > @@ -466,16 +465,14 @@ int lttng_ust_elf_get_build_id_from_segment( > goto error; > } > > - _found = 1; > break; > } > > - if (_found) { > + if (_build_id) { > *build_id = _build_id; > *length = _length; > } > > - *found = _found; > return 0; > error: > free(_build_id); > @@ -501,7 +498,6 @@ int lttng_ust_elf_get_build_id(struct lttng_ust_elf *elf, > uint8_t **build_id, > uint16_t i; > uint8_t *_build_id = NULL; /* Silence old gcc warning. */ > size_t _length = 0; /* Silence old gcc warning. */ > - int _found = 0; > > if (!elf || !build_id || !length || !found) { > goto error; > @@ -525,24 +521,25 @@ int lttng_ust_elf_get_build_id(struct lttng_ust_elf > *elf, > uint8_t **build_id, > offset = phdr->p_offset; > segment_end = offset + phdr->p_filesz; > ret = lttng_ust_elf_get_build_id_from_segment( > - elf, &_build_id, &_length, offset, segment_end, > - &_found); > + elf, &_build_id, &_length, offset, segment_end); > next_loop: > free(phdr); > if (ret) { > goto error; > } > - if (_found) { > + if (_build_id) { > break; > } > } > > - if (_found) { > + if (_build_id) { > *build_id = _build_id; > *length = _length; > + *found = 1; > + } else { > + *found = 0; > } > > - *found = _found; > return 0; > error: > free(_build_id); > @@ -561,16 +558,14 @@ error: > */ > int lttng_ust_elf_get_debug_link_from_section(struct lttng_ust_elf *elf, > char **filename, uint32_t *crc, > - int *found, > struct lttng_ust_elf_shdr *shdr) > { > - int _found = 0; > char *_filename = NULL; /* Silence old gcc warning. */ > size_t filename_len; > char *section_name = NULL; > uint32_t _crc = 0; /* Silence old gcc warning. */ > > - if (!elf || !filename || !crc || !found || !shdr) { > + if (!elf || !filename || !crc || !shdr) { > goto error; > } > > @@ -613,15 +608,12 @@ int lttng_ust_elf_get_debug_link_from_section(struct > lttng_ust_elf *elf, > _crc = bswap_32(_crc); > } > > - _found = 1; > - > end: > free(section_name); > - if (_found) { > + if (_filename) { > *filename = _filename; > *crc = _crc; > } > - *found = _found; > > return 0; > > @@ -646,7 +638,6 @@ int lttng_ust_elf_get_debug_link(struct lttng_ust_elf > *elf, > char **filename, > { > int ret; > uint16_t i; > - int _found = 0; > char *_filename = NULL; /* Silence old gcc warning. */ > uint32_t _crc = 0; /* Silence old gcc warning. */ > > @@ -663,24 +654,27 @@ int lttng_ust_elf_get_debug_link(struct lttng_ust_elf > *elf, char **filename, > } > > ret = lttng_ust_elf_get_debug_link_from_section( > - elf, &_filename, &_crc, &_found, shdr); > + elf, &_filename, &_crc, shdr); > free(shdr); > > if (ret) { > goto error; > } > - if (_found) { > + if (_filename) { > break; > } > } > > - if (_found) { > + if (_filename) { > *filename = _filename; > *crc = _crc; > + *found = 1; > + } else { > + *found = 0; > } > > - *found = _found; > return 0; > + > error: > free(_filename); > return -1; > -- > 2.5.3 -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
