summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/basic_functions.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 3b604efe2a..cca7d8385a 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -4282,15 +4282,15 @@ PHP_FUNCTION(getopt)
/* the first <len> slots are filled by the one short ops
* we now extend our array and jump to the new added structs */
opts = (opt_struct *) erealloc(opts, sizeof(opt_struct) * (len + count + 1));
+ if (!opts) {
+ RETURN_FALSE;
+ }
+
orig_opts = opts;
opts += len;
memset(opts, 0, count * sizeof(opt_struct));
- if (!opts) {
- RETURN_FALSE;
- }
-
/* Reset the array indexes. */
zend_hash_internal_pointer_reset(Z_ARRVAL_P(p_longopts));
@@ -4327,6 +4327,10 @@ PHP_FUNCTION(getopt)
}
} else {
opts = (opt_struct*) erealloc(opts, sizeof(opt_struct) * (len + 1));
+ if (!opts) {
+ RETURN_FALSE;
+ }
+
orig_opts = opts;
opts += len;
}