summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2007-06-06 22:04:05 +0000
committerIlia Alshanetsky <iliaa@php.net>2007-06-06 22:04:05 +0000
commit717e94c67ab58ceacbba4e7ec17c13b64ffc7b91 (patch)
tree94e6f7cb743e0ab1b6b272c5c70397e7caabca72 /ext
parent2041566a124b09a1912142fc246764cd1504db99 (diff)
downloadphp-git-717e94c67ab58ceacbba4e7ec17c13b64ffc7b91.tar.gz
Added missing format validator to unpack() function
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/pack.c6
-rw-r--r--ext/standard/tests/strings/unpack.phpt11
2 files changed, 17 insertions, 0 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index 15924dba04..1e7acac6e1 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -635,6 +635,12 @@ PHP_FUNCTION(unpack)
case 'd':
size = sizeof(double);
break;
+
+ default:
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid format type %c", type);
+ zval_dtor(return_value);
+ RETURN_FALSE;
+ break;
}
/* Do actual unpacking */
diff --git a/ext/standard/tests/strings/unpack.phpt b/ext/standard/tests/strings/unpack.phpt
new file mode 100644
index 0000000000..f843dab878
--- /dev/null
+++ b/ext/standard/tests/strings/unpack.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Invalid format type validation
+--FILE--
+<?php
+ var_dump(unpack("-2222", 1));
+ echo "Done\n";
+?>
+--EXPECTF--
+Warning: unpack(): Invalid format type - in %s/unpack.php on line %d
+bool(false)
+Done \ No newline at end of file