[lttng-dev] [PATCH lttng-ust] Clean-up: remove extraneous "found" parameters in ust-elf
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Mon Sep 21 14:28:17 EDT 2015
merged, thanks!
Mathieu
----- On Sep 21, 2015, at 2:19 PM, Antoine Busque abusque at efficios.com 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 <abusque at efficios.com>
> ---
> 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
More information about the lttng-dev
mailing list