DragonFly bugs List (threaded) for 2009-06
DragonFly BSD
DragonFly bugs List (threaded) for 2009-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[issue1399] fnmatch(3) escapes '0' to '\'

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


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);


        return (EXIT_SUCCESS)

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


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>

Attachment: 0001-fnmatch-3-Properly-escape-the-terminating-characte.patch
Description: Binary data

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