diff options
author | Anatol Belski <ab@php.net> | 2014-12-17 11:53:45 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2014-12-17 11:53:45 +0100 |
commit | 9c354ba1827771e0aa7e39eec744cae864652643 (patch) | |
tree | 3e7ba8fbef038375a4734d85dfd79c3f860b02bc | |
parent | 3b6a8b1163a6705e9cb07125ea6328eaa656b740 (diff) | |
parent | f61071205feec54e51ead73c730be53ef197f86e (diff) | |
download | php-git-9c354ba1827771e0aa7e39eec744cae864652643.tar.gz |
Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
Better fix for #68601 for perf https://bitbucket.org/libgd/gd-libgd/commits/81e9a993f2893d651d225646378e3fd1b7465467
Added EXPECTED(). Most functions have arguments.
-rw-r--r-- | Zend/zend_execute.h | 2 | ||||
-rw-r--r-- | ext/gd/libgd/gd_gif_in.c | 12 |
2 files changed, 7 insertions, 7 deletions
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 33463e05ac..0d58c6195d 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -192,7 +192,7 @@ static zend_always_inline void zend_vm_stack_free_args(zend_execute_data *call) { uint32_t num_args = ZEND_CALL_NUM_ARGS(call); - if (num_args > 0) { + if (EXPECTED(num_args > 0)) { zval *end = ZEND_CALL_ARG(call, 1); zval *p = end + num_args; diff --git a/ext/gd/libgd/gd_gif_in.c b/ext/gd/libgd/gd_gif_in.c index 491e9422db..f41ec8460a 100644 --- a/ext/gd/libgd/gd_gif_in.c +++ b/ext/gd/libgd/gd_gif_in.c @@ -400,14 +400,14 @@ GetCode_(gdIOCtx *fd, CODE_STATIC_DATA *scd, int code_size, int flag, int *ZeroD scd->lastbit = (2+count)*8 ; } - ret = 0; - for (i = scd->curbit, j = 0; j < code_size; ++i, ++j) - if (i < CSD_BUF_SIZE * 8) { + if ((scd->curbit + code_size - 1) >= (CSD_BUF_SIZE * 8)) { + ret = -1; + } else { + ret = 0; + for (i = scd->curbit, j = 0; j < code_size; ++i, ++j) { ret |= ((scd->buf[i / 8] & (1 << (i % 8))) != 0) << j; - } else { - ret = -1; - break; } + } scd->curbit += code_size; return ret; |