bug-gnulib
[Top][All Lists]
Advanced

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

Re: FreeBSD bugs


From: Bruno Haible
Subject: Re: FreeBSD bugs
Date: Tue, 02 Oct 2012 04:50:13 +0200
User-agent: KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; )

Hi Ed,

> it looks like we're pretty close to having all of
> the tests apply and pass on FreeBSD so I suspect I don't have many
> more to find.

Do you know what is the status of the following bugs in the newest
FreeBSD release? Let me cite the sections of gnulib documentation.
You find the test cases in the corresponding *.m4 files.

alphasort
The parameters of this function are declared as @code{const void *} on some 
platforms:

chown
Some platforms fail to detect trailing slash on non-directories, as in
@code{chown("link-to-file/",uid,gid)}:

dup2
This function returns @code{EMFILE} instead of @code{EBADF} for
extremely large targets, which interferes with using
@code{dup2(fd,fd)==fd)} as the minimal @code{EBADF} filter:

fclose
On some platforms, this function fails to set the file position of a
seekable input stream to the byte after the last one actually read:

fcntl
This function does not support @code{F_DUPFD_CLOEXEC} on some
platforms:

fdopendir
This function mistakenly closes non-directory file descriptors on some
platforms:

fflush
@code{fflush} on an input stream right after @code{ungetc} does not discard
the @code{ungetc} buffer, on some platforms:

fmaf
This function produces wrong results on some platforms:

fmal
This function produces wrong results on some platforms:

fma
This function produces wrong results on some platforms:

*printf
printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
with zeroes) on some platforms:
This function can crash in out-of-memory conditions on some platforms:

getdelim, getline
This function crashes when passed a pointer to a NULL buffer together with a
pointer to a non-zero buffer size on some platforms:

getgroups
On some platforms, this function fails to reject a negative count,
even though that is less than the size that would be returned:

lchown
Some platforms fail to detect trailing slash on non-directories, as in
@code{lchown("link-to-file/",uid,gid)}:

link
This function fails to reject trailing slashes on non-directories on
some platforms:

mkfifo
This function mishandles trailing slash on some platforms:

mknod
This function requires super-user privileges to create a fifo:
This function mishandles trailing slash on some platforms:

modf
This function has problems with infinite arguments on some platforms:

open
This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:

perror
This function treats @code{errno} of 0 like failure, although POSIX
requires that the message declare it as a success, on some platforms:

pthread_sigmask
This function is declared in @code{<pthread.h>} instead of @code{<signal.h>}
on some platforms:
This function does nothing and always returns 0 in programs that are not
linked with @code{-lpthread} on some platforms:

readlink
Some platforms mistakenly succeed on @code{readlink("link/",buf,len)}:
On some platforms, @code{readlink} returns @code{int} instead of
@code{ssize_t}:

realpath
This function does not allow for a NULL @samp{resolved} parameter on
some platforms:

remove
This function fails to reject trailing slashes on non-directories on
some platforms:

rename
This function does not reject trailing slashes on symlinks to
non-directories on some platforms, as in
@code{rename("link-to-file/","f")}:

scandir
The fourth parameter of this function is declared as @code{int (*) (const void 
*, const void *)} on some platforms:

setenv
On some platforms, this function does not fail with @samp{EINVAL} when
passed an empty string or a string containing @samp{=}:

stat
On some platforms, @code{stat("link-to-file/",buf)} succeeds instead
of failing with @code{ENOTDIR}.

strerror
This function reports failure for @code{strerror(0)} (by setting
@code{errno} or using a string similar to out-of-range values),
although POSIX requires this to leave @code{errno} unchanged and
report success, on some platforms:

strerror_r
This function reports failure for @code{strerror_r(0, buf, len)},
although POSIX requires this to succeed, on some platforms:
When the value is not in range or the buffer is too small, this
function fails to leave a NUL-terminated string in the buffer on some
platforms:

strstr
This function has quadratic instead of linear worst-case complexity on some
platforms:

strtod
This function returns the wrong end pointer for @samp{-0x} on some
platforms:
This function fails to parse @samp{NaN()} on some platforms:
This function fails to correctly parse very long strings on some
platforms:

symlink
On some systems, @code{symlink(value,"name/")} mistakenly creates a
symlink:

unlink
Some systems mistakenly succeed on @code{unlink("link-to-file/")}:

unsetenv
This function has the return type @samp{void} instead of @samp{int} on some
platforms:
On some platforms, this function does not fail with @samp{EINVAL} when
passed an empty string or a string containing @samp{=}:

utimes
On some platforms, this function mis-handles trailing slash:


Bruno




reply via email to

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