[Top][All Lists]

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

Re: [Nmh-workers] Updates to nmh

From: Ken Hornstein
Subject: Re: [Nmh-workers] Updates to nmh
Date: Fri, 16 Jan 2009 10:41:07 -0500

>I only took a quick glance, but I think there may be some issues
>with freeaddrinfo() use.  For example, in sbr/client.c client() a
>NULL pointer can be passed to freeaddrinfo().  That doesn't work
>on a lot of platforms.  Second, it seems memory is being leaked
>in that function if you get a result set from getaddrinfo(), but
>fail to connect and then call getaddrinfo() again with a
>different host.

Well, there were already plenty of memory leaks in there before!  But
seriously, that doesn't mean that we should create more.

I took a closer look at client.c again.  I think I see what you mean;
I put freeaddrinfo() at the wrong spot (I think it should be inside
of the loop over the servers).  I believe that addresses both the issue
of memory leakage and calls to freeaddrinfo() with a NULL argument.
I think I tried to be careful to do that in most places (client.c was
the most complicated code I had to deal with).

>Additionally, I don't know if you can assume that res will be set
>to NULL if getaddrinfo() fails.  Since the spec doesn't specify,
>I figure it could be in any state on error:  NULL, never changed,
>or pointing at a result set.

Right.  My tactic was to only call freeaddrinfo() if getaddrinfo() was


reply via email to

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