NetBSD-Bugs archive

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

lib/41558: fnmatch(3) translates '\' followed by '0' to '\'



>Number:         41558
>Category:       lib
>Synopsis:       fnmatch(3) translates '\' followed by '0' to '\'
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 08 17:10:00 +0000 2009
>Originator:     Stathis Kamperis
>Release:        NetBSD 5.0_STABLE/i386
>Organization:
Aristotle University of Thessaloniki
>Environment:
currently unavailable
>Description:
Suppose that we supply fnmatch(3) with a pattern of the form "\" (that is '\' 
followed by '0') without setting the FNM_NOESCAPE flag. Wouldn't the normal 
thing to do is escape the terminating character and return just '0' ? Instead 
'\' is returned. As if one has provided a pattern "\\".

This behavior is exhibited by NetBSD 5.0_STABLE, FreeBSD 7.2-RELEASE and 
DragonFlyBSD-current.

On the other side sunOS 5.10 and Linux with a relatively recent glibc translate 
the pattern to '0'.

I've looked into the specs but couldn't find anything relevant. Any thoughts ?

>How-To-Repeat:
#include <assert.h>
#include <fnmatch.h>
#include <stdio.h>
#include <stdlib.h>

 
int main(void)
{
        int rv;

        rv = fnmatch(/* pattern */ "\\", "\\", 0);
        assert(rv == FNM_NOMATCH);

        printf("passed\n");

        return (EXIT_SUCCESS)
}
>Fix:



Home | Main Index | Thread Index | Old Index