Bug #15333 Updated: strndup access violation
| From: | jim dot borowicz at amivisions dot com | Date: | Wed, 17 Apr 2002 05:29:45 +0000 |
| Subject: | Bug #15333 Updated: strndup access violation | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-5160@lists.php.net to get a copy of this message | ||
ID: 15333
Updated by: jim.borowicz@amivisions.com
Reported By: david@harksystems.com
Status: Critical
Bug Type: IIS related
Operating System: Windows 2000 Pro
PHP Version: 4.2.0 RC2
New Comment:
I am also receiving this error with:
Win2k Server SP2 w/all security patches
But I am running PHP 4.1.2 ISAPI under IIS 5.0
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2002-04-09 08:14:55] develop@dnet.net
I have been super busy lately, but, since I switched the app protection
down to 'Low (IIS Process)' a week ago I haven't gotten a single error
or lock up. Thanks for your persistance.
Still using 4.1.2.
------------------------------------------------------------------------
[2002-04-08 12:04:38] jtate@php.net
Ok. It definitely happens with RC2. You can restart IIS without
rebooting, you've got to perform the following:
kill the inetinfo.exe process using the task manager
run from command line:
net stop w3svc
net stop iisadmin
net start iisadmin
net start w3svc
Marking this bug critical because it should be fixed before 4.2.0
release. Still looking for fix.
------------------------------------------------------------------------
[2002-04-05 12:38:03] jtate@php.net
Nevermind. That's not the problem. Still looking.
------------------------------------------------------------------------
[2002-04-04 13:23:18] jtate@php.net
I think I've found the problem:
ZEND_API char *zend_strndup(const char *s, uint length)
{
char *p;
p = (char *) malloc(length+1);
if (!p) {
return (char *)NULL;
}
if (length) {
memcpy(p, s, length);
}
p[length] = 0;
return p;
}
If this is changed to
ZEND_API char *zend_strndup(const char *s, uint length)
{
char *p;
p = (char *) malloc(length+1);
if (!p) {
return (char *)NULL;
}
if (length) {
memcpy(p, s, length);
p[length] = 0;
}
return p;
}
does that break anything? I think the problem comes in when length==0.
I can't really reproduce this problem though. I saw it once a couple
of days ago, but havn't seen it since.
Also will one of you that's having this problem please check to see if
4.2.0 RC 2 still has this problem? Since 4.2.0 is going to be released
really soon now, I'd like to get this worked through (but if it doesn't
happen anymore under 4.2.0 then we're worrying about nothing).
------------------------------------------------------------------------
[2002-04-04 10:27:27] develop@dnet.net
I've been having the same problem.
Win2k (All security updates)
IIS 5.0
Pentium III 733
ISAPI Version 4.1.2
I switched security on each virtual directory to 'Low(IIS Process) and
haven't gotten the error since. This isn't a satisfactory fix, but
maybe it'll help figure out what is causing the problem.
------------------------------------------------------------------------
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/15333
--
Edit this bug report at http://bugs.php.net/?id=15333&edit=1