summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--ext/posix/posix.c21
2 files changed, 14 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index b90560906d..5fef30ac3a 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ PHP 4.0 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05 Oct 2000, Version 4.0.3
+- Fixed crash in the POSIX getrlimit() function (alex@zend.com)
- Fixed dirname() under certain conditions (Andi)
- Add --with-imap-ssl to support SSL'ized imap library in RH7 and others
(Rasmus)
diff --git a/ext/posix/posix.c b/ext/posix/posix.c
index 7cb17cf8db..0eba167dab 100644
--- a/ext/posix/posix.c
+++ b/ext/posix/posix.c
@@ -833,6 +833,9 @@ PHP_FUNCTION(posix_getpwuid)
#ifdef HAVE_GETRLIMIT
+
+#define UNLIMITED_STRING "unlimited"
+
static int posix_addlimit(int limit, char *name, pval *return_value) {
int result;
struct rlimit rl;
@@ -848,15 +851,17 @@ static int posix_addlimit(int limit, char *name, pval *return_value) {
return FAILURE;
}
- if (rl.rlim_cur == RLIM_INFINITY)
- add_assoc_string(return_value,soft,"unlimited", 1);
- else
- add_assoc_long(return_value,soft,rl.rlim_cur);
+ if (rl.rlim_cur == RLIM_INFINITY) {
+ add_assoc_stringl(return_value, soft, UNLIMITED_STRING, sizeof(UNLIMITED_STRING)-1, 1);
+ } else {
+ add_assoc_long(return_value, soft, rl.rlim_cur);
+ }
- if (rl.rlim_max == RLIM_INFINITY)
- add_assoc_string(return_value,hard,"unlimited", 1);
- else
- add_assoc_long(return_value,hard,rl.rlim_max);
+ if (rl.rlim_max == RLIM_INFINITY) {
+ add_assoc_stringl(return_value, hard, UNLIMITED_STRING, sizeof(UNLIMITED_STRING)-1, 1);
+ } else {
+ add_assoc_long(return_value, hard, rl.rlim_max);
+ }
return SUCCESS;
}