Re: REMINDER - stream wrappers in include_path

From: Date: Mon, 24 Mar 2008 13:47:25 +0000
Subject: Re: REMINDER - stream wrappers in include_path
References: 1 2 3 4 5 6  Groups: php.internals 
Request: Send a blank email to internals+get-36425@lists.php.net to get a copy of this message
Marcus Boerger wrote: > Hello Gregory, > > Monday, March 24, 2008, 2:28:00 PM, you wrote: > > >> Index: main/fopen_wrappers.c >> =================================================================== >> RCS file: /repository/php-src/main/fopen_wrappers.c,v >> retrieving revision 1.175.2.3.2.13.2.9 >> diff -u -r1.175.2.3.2.13.2.9 fopen_wrappers.c >> --- main/fopen_wrappers.c 24 Mar 2008 09:30:41 -0000 1.175.2.3.2.13.2.9 >> +++ main/fopen_wrappers.c 24 Mar 2008 13:24:34 -0000 >> @@ -473,7 +473,15 @@ >> >> ptr = path; >> while (ptr && *ptr) { >> - end = strchr(ptr, DEFAULT_DIR_SEPARATOR); >> + /* Check for stream wrapper */ >> + int is_stream_wrapper = 0; >> + >> + for (p = ptr; isalnum((int)*p) || *p == '+' || *p == >> '-' || *p == '.'; p++); >> + if ((*p == ':') && (p - ptr > 1) && (p[1] == >> '/') && (p[2] == '/')) { >> > However how about: > if ((p > ptr) && !memcmp(p, "://", 3)) { this would unfortunately break UNC paths on unix, which start with //. We have to verify that the stuff between : and : in the previous thing is a valid stream wrapper, which means it can only be alphanumeric/+/-/. However, I imagine the memcmp could be applied as if ((*p == ':') && (p - ptr > 1) && !memcmp(p, "://", 3)) Would that really be faster? > I think prefixinf with STREAMS_ would be good. OK, updated and attached Greg

« previous php.internals (#36425) next »