lvqcl wrote:

> Another example is in static_metadata_clear() in src\flac\encode.c:
> 
>      for(i = 0; i < m->num_metadata; i++)
>          if(m->needs_delete[i])
>              FLAC__metadata_object_delete(m->metadata[i]);
> 
>      if(m->metadata)
>          free(m->metadata);
>      if(m->needs_delete)
>          free(m->needs_delete);
> 
> Here m->metadata and m->needs_delete were first dereferenced
> and then (unnecessarily) checked against NULL.

Its actually deeper than that. Passing a NULL pointer to the free() function
is perfectly safe as that is specified (by the C standard) to be a NO-OP.

Currently working on a patch to remove all these from metadata_object.c.

Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to