ID: 21958 Comment by: ohp at pyrenet dot fr Reported By: ct at swin dot edu dot au Status: Assigned Bug Type: Filesystem function related Operating System: Tru64 UNIX 5.1A PHP Version: 4.3.3-dev Assigned To: wez New Comment:
Hi, Glad to see my patch works on AIX, not so glad it fails with TRU64 UNIX Did you test with the same script/environment you wrote on Jan 30? Did you try to log the value of path after each VCWD_REALPATH. AFAICS, the whole bug comes from realpath doing nasty things when path is NULL hence the strcopy I added. Feel free to email directly. I'm not a PHP developper (I'd love the help of one on this one) but I want to get rid of this bug. Regards Olivier Previous Comments: ------------------------------------------------------------------------ [2003-06-01 23:54:24] ct at swin dot edu dot au Patch makes no difference with Tru64 UNIX 5.1A and PHP 4.3.2. ------------------------------------------------------------------------ [2003-05-30 11:12:50] juha dot moisio at tietonauha dot fi I tested that patch. Works just fine in AIX 4.3.1 php 4.3.2 -Juha- ------------------------------------------------------------------------ [2003-05-28 10:47:42] ohp at pyrenet dot fr after 2 strggling, I came with the following path on safe_mode.c against 4.3.2RC4. Not sure it's the right thing to do. could someone have a look? Regards *** main/safe_mode.c.orig lun mrs 17 14:50:23 2003 --- main/safe_mode.c mar mai 27 15:06:30 2003 *************** *** 66,71 **** --- 66,72 ---- mode = CHECKUID_DISALLOW_FILE_NOT_EXISTS; } else { mode = CHECKUID_CHECK_FILE_AND_DIR; + flags=1; } } *************** *** 81,86 **** --- 82,88 ---- * If that fails, passthrough and check directory... */ if (mode != CHECKUID_ALLOW_ONLY_DIR) { + strcpy(path,filename); VCWD_REALPATH(filename, path); ret = VCWD_STAT(path, &sb); if (ret < 0) { this works on Unixware 713 ------------------------------------------------------------------------ [2003-05-27 06:29:50] ohp at pyrenet dot fr I have made tons of research on this since yesterday. It appears that realpath (at least on UW 713) set path to NULLL, returns NULL with errno=2 in case of a non existing file on line 86 in safe_mode.c then function proceeds to line 116 with a NULL path, all functions fail and the file cannot be created. Hope this help to create a patch (I'm trying to but don't know the code enough too) Please someone help. [EMAIL PROTECTED] ------------------------------------------------------------------------ [2003-05-26 09:34:28] ohp at pyrenet dot fr The bug is still there with php-4.3.2RC4 as an apache 1.3.27 module. This is on Unixware 7. with safe_mode=Off, file creation succeeds, with safe_mode=On, file creattion fails with "failed to open stream: no such file or directory ..." I've tried setting the dir 777, make it owned by apache UID.. Nothing worked. A truss of the apache server showed that the last syscall before failed was a pathconf(filename,...) returning ENOENT File didn't exist so it's normal. Please help ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/21958 -- Edit this bug report at http://bugs.php.net/?id=21958&edit=1