[PATCH 3/2] argv-array: fix bogus cast when freeing array
- From
Jeff King <peff@peff.net>
- Date
- Sep 1, 2012, 11:34 UTC
- Message-ID
- <20120901113409.GC11445@sigill.intra.peff.net>
- In-Reply-To
- <20120901113206.GB11445@sigill.intra.peff.net>
On Sat, Sep 01, 2012 at 07:32:07AM -0400, Jeff King wrote:
Show 12 quoted lines
> Since the array struct stores a "const char **" argv member > (for compatibility with most of our argv-taking functions), > we have to cast away the const-ness when freeing its > elements. > > However, we used the wrong type when doing so. It doesn't > make a difference since free() take a void pointer anyway, > but it can be slightly confusing to a reader. > > Signed-off-by: Jeff King <peff@peff.net> > --- > Noticed this while I was adding the other free in argv_array_pop...
Argh, managed to botch the subject line. Here it is for real.
-- >8 -- Since the array struct stores a "const char **" argv member (for compatibility with most of our argv-taking functions), we have to cast away the const-ness when freeing its elements.
However, we used the wrong type when doing so. It doesn't make a difference since free() take a void pointer anyway, but it can be slightly confusing to a reader.
Signed-off-by: Jeff King <peff@peff.net> --- argv-array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/argv-array.c b/argv-array.c index 55e8443..256741d 100644 --- a/argv-array.c +++ b/argv-array.c @@ -63,7 +63,7 @@ void argv_array_clear(struct argv_array *array) if (array->argv != empty_argv) { int i; for (i = 0; i < array->argc; i++) - free((char **)array->argv[i]); + free((char *)array->argv[i]); free(array->argv); } argv_array_init(array);
-- 1.7.12.rc3.8.g89db099