| From: | "Stathis Kamperis \(via DragonFly issue tracker\)" <sinknull@xxxxxxxxxxxxxxxxxxxxx> |
| Date: | Wed, 10 Jun 2009 19:24:07 +0000 |
New submission from Stathis Kamperis <ekamperi@gmail.com>:
Salute.
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 HEAD.
On the other side sunOS 5.10 and Linux with a relatively recent glibc translate
the pattern to '0'.
You can check with the following snippet:
#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)
}
I've looked into the specs but couldn't find anything relevant.
Any thoughts ?
Cheers,
Stathis
----------
assignedto: Beket
files: 0001-fnmatch-3-Properly-escape-the-terminating-characte.patch
messages: 6737
nosy: Beket
priority: bug
status: unread
title: fnmatch(3) escapes '0' to '\'
_____________________________________________________
DragonFly issue tracker <bugs@lists.dragonflybsd.org>
<http://bugs.dragonflybsd.org/issue1399>
_____________________________________________________Attachment:
0001-fnmatch-3-Properly-escape-the-terminating-characte.patch
Description: Binary data