> +    /* Attempt to free the storage associated with the local symbols
> +       that we threw away.  Whether or not this has any effect on the
> +       memory allocation depends on the malloc implementation and how
> +       many symbols we managed to discard.  */
>      syms = realloc(syms, nsyms * sizeof(*syms));
> +    if (syms == NULL) {
> +        free(s);
> +        free(strings);
> +        return;
> +    }

If realloc() fails it leaves the original object unchanged, so can't
you just write:

    t = realloc(syms, nsyms * sizeof(*syms));
    if (t != NULL) {
        syms = t;
    }

?

Jay.

Reply via email to