]> granicus.if.org Git - php/commitdiff
- #50690, putenv does assign value when their length is one char on windows
authorPierre Joye <pajoye@php.net>
Thu, 4 Feb 2010 09:08:57 +0000 (09:08 +0000)
committerPierre Joye <pajoye@php.net>
Thu, 4 Feb 2010 09:08:57 +0000 (09:08 +0000)
ext/standard/basic_functions.c
ext/standard/tests/general_functions/bug50690.phpt [new file with mode: 0644]

index c3693f74b82045aac6b2d7092c865d192ae530a2..5c2c23e5b0b18193cc8eac4f446ebe8f7390f2a2 100644 (file)
@@ -4056,7 +4056,7 @@ PHP_FUNCTION(putenv)
                pe.key_len = strlen(pe.key);
 #ifdef PHP_WIN32
                if (equals) {
-                       if (pe.key_len < setting_len - 2) {
+                       if (pe.key_len < setting_len - 1) {
                                value = p + 1;
                        } else {
                                /* empty string*/
diff --git a/ext/standard/tests/general_functions/bug50690.phpt b/ext/standard/tests/general_functions/bug50690.phpt
new file mode 100644 (file)
index 0000000..4d9f0dc
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--\r
+Bug #23650 (putenv() does not assign values when the value is one character)\r
+--FILE--\r
+<?php\r
+putenv("foo=ab");\r
+putenv("bar=c");\r
+var_dump(getenv("foo"));\r
+var_dump(getenv("bar"));\r
+var_dump(getenv("thisvardoesnotexist"));\r
+?>\r
+--EXPECT--\r
+string(2) "ab"\r
+string(1) "c"\r
+bool(false)\r