bug-hurd
[Top][All Lists]
Advanced

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

Re: The patch of glibc which allows the user to override the pfinet serv


From: zhengda
Subject: Re: The patch of glibc which allows the user to override the pfinet server
Date: Wed, 13 Aug 2008 13:49:41 +0200
User-agent: Thunderbird 2.0.0.16 (X11/20080707)

Neal H. Walfield wrote:
At Wed, 13 Aug 2008 12:41:12 +0200,
zhengda wrote:
+      if (__asprintf (&name, "SOCK_SERV_%d", domain) > 0)
+        {
+          np = getenv (name);
+          __free (name);
+        }
You need to check whether asprintf() returns an error code (-1), meaning
memory allocation failed, and handle it accordingly -- just like you
handled failure with the explicit malloc() in your original code.
as I understand from the manual of asprintf, asprintf always returns -1 if there is some error.

RETURN VALUE
When successful, these functions return the number of bytes printed, just like sprintf(3). If memory allocation wasn't possible, or some other error occurs, these functions will return -1, and the contents of
       strp is undefined.

Check if the result is != -1, not > 0, which has a different meaning.

If asprintf() doesn't fail, the getenv() should be done unconditionally.

+          if (__asprintf (&name, "%s/%d", sock_servs, domain) > 0)
+              np = name;

Here too.
but it's still wrong that __asprintf returns 0 in my code, isn't it?

Zheng Da




reply via email to

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