Project

General

Profile

Actions

Bug #1399

closed

fnmatch(3) escapes '0' to '\'

Added by Anonymous almost 15 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Userland
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

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


Files

Actions

Also available in: Atom PDF