bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/4] fix a realloc-related memory leak in localhost()


From: Jonathan Neuschäfer
Subject: [PATCH 2/4] fix a realloc-related memory leak in localhost()
Date: Mon, 15 Aug 2011 14:32:56 +0200

I don't really like this patch, but feel free to apply it, if you do.
---
 libshouldbeinlibc/localhost.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/libshouldbeinlibc/localhost.c b/libshouldbeinlibc/localhost.c
index f0c6754..f21f970 100644
--- a/libshouldbeinlibc/localhost.c
+++ b/libshouldbeinlibc/localhost.c
@@ -39,18 +39,25 @@ localhost ()
        errno = 0;
 
        if (buf) {
+         char *new;
          buf_len += buf_len;
-         buf = realloc (buf, buf_len);
+         new = realloc (buf, buf_len);
+         if (! new)
+           {
+             errno = ENOMEM;
+             return 0;
+           }
+         else
+           buf = new;
        } else {
          buf_len = 128;        /* Initial guess */
          buf = malloc (buf_len);
+         if (! buf)
+           {
+             errno = ENOMEM;
+             return 0;
+           }
        }
-
-       if (! buf)
-         {
-           errno = ENOMEM;
-           return 0;
-         }
       } while ((gethostname(buf, buf_len) == 0 && !memchr (buf, '\0', buf_len))
               || errno == ENAMETOOLONG);
 
-- 
1.7.5.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]