[klibc] Bug in strrchr

Ben Hutchings ben at decadent.org.uk
Fri Dec 30 14:04:54 PST 2022


On Wed, 2022-12-28 at 17:01 +0530, Bugs Reporter wrote:
> Hi,
> 
> I am writing to report a bug in the strrchr function of klibc.
> The bug is in the C implementation of strrchr as located in the usr/klibc/
> directory of the klibc repository. The klibc version was `2.0.11` and the
> source code was downloaded from the Linux Kernel Archives
> <https://mirrors.edge.kernel.org/pub/linux/libs/klibc/2.0/klibc-2.0.11.tar.gz>
> .
> Please find a detailed report below.
> 
> Linux[0] manpage for strrchr() specifies that the terminating null byte is
> considered part of the string, so that if c is specified as '\0', this
> function returns a pointer to the terminator. klibc's implementation does
> not follow this and thus gives wrong output when `c' is '\0'.
> An example input is:
>     const char src[] = {128, '\0'};
>     char *ret = strrchr(src, 0);
>     if (!ret) {
>         printf("BUG!\n");
>     }
> 
> The file that demonstrates the bug can be found here
> <https://github.com/compilerai/bug-reports/blob/master/bug_files/klibc_strrchr_bug.c>
> 
> 0: https://man7.org/linux/man-pages/man3/strchr.3.html

Thank you for your report!

I've fixed this bug:
https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=61d2ea539c88f7862b3992b9a00daaedb6bb68ef
and added test cases for the various string search functions:
https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=9707c6b8d4e6292482bd159458d426cdf2ca9d33

Ben.

-- 
Ben Hutchings
Always try to do things in chronological order;
it's less confusing that way.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.zytor.com/archives/klibc/attachments/20221230/dae12d0d/attachment.sig>


More information about the klibc mailing list