Hello FreeBSD answers,

I am a maintainer of a dhcp analysis software, which is before exit
checking errno. I got report from FreeBSD user, Roar who is CC:d, that
my software is reporting invalid argument at that section of the
program. After sending debugging messages back and forth issue was
pinpointed to following code sample.

-- snip
#include <err.h>
#include <errno.h>
#include <stdlib.h>

int main(void)
{
        int *i;
        warn("errno: %d", errno);
        i = malloc(sizeof(int));
        warn("errno: %d", errno);
        free(i);
        return (errno);
}
-- snip

which will give following output:

# ./a.out
a.out: errno: 0: Unknown error: 0
a.out: errno: 22: Invalid argument

Characteristics of the system are;

FreeBSD 8.2-STABLE

# gcc -v
Using built-in specs.
Target: i386-undermydesk-freebsd
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719  [FreeBSD]

/lib/libc.so.7

There is no malloc.conf file on system.

I don't understand why the invalid argument is set. I do not feel
comfortable to write 'if the system is FreeBSD do not care malloc
related errno 22' to my code. That simply sounds wrong. Does someone
have explanation what might be going on and/or advice how I should
deal this thing in the code? Or is the whole thing some how
environment related?

Unfortunately I don't have FreeBSD installation. So even if you would
not be a malloc specialist you can say reply and tell that the sample
is or is not setting invalid argument. That will be evidence that the
problem happens either on none, some or all other systems as well.

Thanks in advance for help.

-- 
   Sami Kerola
   http://www.iki.fi/kerolasa/
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to