bug-gnulib
[Top][All Lists]
Advanced

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

Re: FreeBSD bugs


From: Ed Maste
Subject: Re: FreeBSD bugs
Date: Tue, 2 Oct 2012 10:30:07 -0400

On 1 October 2012 22:50, Bruno Haible <address@hidden> wrote:
> 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.

Thanks for the list - here's the current status, on 9.1 prerelease.
It'll take a little while to fully analyze the remaining failures.

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

Fixed,
http://www.freebsd.org/cgi/query-pr.cgi?pr=142255
http://svnweb.freebsd.org/base?view=revision&revision=201512

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

Fixed - I didn't find the PR or commit, but from configure.log:

configure:14616: checking whether chown honors trailing slash
configure:14653: result: yes

> 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:

Fixed,
http://www.freebsd.org/cgi/query-pr.cgi?pr=164970
http://svnweb.freebsd.org/base?view=revision&revision=234131

> 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:

configure:21795: checking whether fflush works on input streams
configure: program exited with status 4

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

Issue is present

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

Issue is present

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

Issue present, same as fclose above

> fmaf
> This function produces wrong results on some platforms:

configure:47801: checking whether fmaf works
configure:47924: result: yes

> fmal
> This function produces wrong results on some platforms:

configure:48113: checking whether fmal works
configure:48428: result: yes

> fma
> This function produces wrong results on some platforms:

configure:47491: checking whether fma works
configure:47613: result: yes

> *printf
> printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
> with zeroes) on some platforms:

configure:17361: checking whether printf supports the zero flag correctly
configure:17406: result: yes

> This function can crash in out-of-memory conditions on some platforms:

configure:17513: checking whether printf survives out-of-memory conditions
configure:17735: result: no

> 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:

configure:53720: checking for working getdelim function
configure:53790: result: yes

configure:54487: checking for working getline function
configure:54557: result: yes

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

Issue present

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

Fixed, same as chown above

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

I didn't find the specific test for this one.

> mkfifo
> This function mishandles trailing slash on some platforms:

configure:69803: checking whether mkfifo rejects trailing slashes
configure:69846: result: yes

> mknod
> This function requires super-user privileges to create a fifo:

configure:69971: checking whether mknod can create fifo without root privileges
configure:70012: result: yes

> This function mishandles trailing slash on some platforms:

Same as mkfifo above

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

configure:70726: checking whether modf works according to ISO C 99
with IEC 60559
configure: program exited with status 2

> 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:

configure:72756: checking whether open recognizes a trailing slash
configure:72807: result: yes

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

Not sure this is the test described above, but:
configure:73464: checking whether perror matches strerror
configure:73512: result: yes

> pthread_sigmask
> This function is declared in @code{<pthread.h>} instead of @code{<signal.h>}
> on some platforms:

It's in signal.h

> This function does nothing and always returns 0 in programs that are not
> linked with @code{-lpthread} on some platforms:

configure:76179: checking whether pthread_sigmask works without -lpthread
configure:76219: result: no

> readlink
> Some platforms mistakenly succeed on @code{readlink("link/",buf,len)}:

configure:77747: checking whether readlink handles trailing slash correctly
configure:77782: result: yes

> On some platforms, @code{readlink} returns @code{int} instead of
> @code{ssize_t}:

configure:77720: checking whether readlink signature is correct
configure:77745: result: yes

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

configure:13665: checking whether realpath works
configure:13841: result: yes

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

I see REPLACE_REMOVE='1', but don't see a test corresponding to this.

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

configure:79590: checking whether rename honors trailing slash on destination
configure:79641: result: yes
configure:79650: checking whether rename honors trailing slash on source
configure:79701: result: yes

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

I don't see the test, but from the man page:

     scandir(const char *dirname, struct dirent ***namelist,
         int (*select)(const struct dirent *),
         int (*compar)(const struct dirent **, const struct dirent **));

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

configure:82666: checking whether setenv validates arguments
configure:82704: $? = 0

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

configure:86558: checking whether stat handles trailing slashes on directories
configure:86591: result: yes
configure:86593: checking whether stat handles trailing slashes on files
configure:86638: result: yes

> 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:

configure:31836: checking whether strerror(0) succeeds
configure:31876: result: yes

> strerror_r
> This function reports failure for @code{strerror_r(0, buf, len)},
> although POSIX requires this to succeed, on some platforms:

I don't see an explicit test for strerror_r for this, but presumably
fixed as strerror above.

> 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:

configure:31937: checking whether strerror_r works
configure:32003: result: yes

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

configure:89105: checking whether strstr works in linear time
configure:89190: result: no

> 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:

configure:89327: checking whether strtod obeys C99
configure:89452: result: yes

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

configure:90017: checking whether symlink handles trailing slash correctly
configure:90056: result: yes

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

configure:109928: checking whether unlink honors trailing slashes
configure:109981: result: yes

> unsetenv
> This function has the return type @samp{void} instead of @samp{int} on some
> platforms:

It's int.

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

Hmm, it's actually failing before that now.

configure:110450: checking whether unsetenv obeys POSIX
configure: program exited with status 3
       if (getenv ("a")) return 3;

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

configure:34961: checking whether the utimes function works
configure:35086: result: yes



reply via email to

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