[git commit] ifconfig: fix double free fatal error in INET_sprint

Denys Vlasenko vda.linux at googlemail.com
Tue Feb 3 11:11:30 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=a97777889328157bb7d06ec618bad16712a9c345
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Based on the patch by Zheng Junling <zhengjunling at huawei.com>
and Chen Gang <cg.chen at huawei.com>

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/interface.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/networking/interface.c b/networking/interface.c
index bf7d2b1..b0572d0 100644
--- a/networking/interface.c
+++ b/networking/interface.c
@@ -91,9 +91,9 @@ static const char* FAST_FUNC INET_sprint(struct sockaddr *sap, int numeric)
 {
 	static char *buff; /* defaults to NULL */
 
-	free(buff);
 	if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
 		return "[NONE SET]";
+	free(buff);
 	buff = INET_rresolve((struct sockaddr_in *) sap, numeric, 0xffffff00);
 	return buff;
 }
@@ -173,9 +173,9 @@ static const char* FAST_FUNC INET6_sprint(struct sockaddr *sap, int numeric)
 {
 	static char *buff;
 
-	free(buff);
 	if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
 		return "[NONE SET]";
+	free(buff);
 	buff = INET6_rresolve((struct sockaddr_in6 *) sap, numeric);
 	return buff;
 }


More information about the busybox-cvs mailing list