This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Check if deriv->steps is NULL before freeing it
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Fri, 7 Sep 2012 11:50:48 -0700
- Subject: [PATCH] Check if deriv->steps is NULL before freeing it
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
With --disable-shared, deriv->steps may be NULL. This patch checks it.
OK to install?
Thanks.
H.J.
---
* iconv/gconv_db.c (free_derivation): Check if deriv->steps
is NULL.
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index a081205..703c9e3 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -193,10 +193,13 @@ free_derivation (void *p)
}
/* Free the name strings. */
- free ((char *) deriv->steps[0].__from_name);
- free ((char *) deriv->steps[deriv->nsteps - 1].__to_name);
+ if (deriv->steps)
+ {
+ free ((char *) deriv->steps[0].__from_name);
+ free ((char *) deriv->steps[deriv->nsteps - 1].__to_name);
+ free ((struct __gconv_step *) deriv->steps);
+ }
- free ((struct __gconv_step *) deriv->steps);
free (deriv);
}
--
1.7.11.4