From 1b60c189ad4e45d57df576ab180c5cb91c2db8a7 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Thu, 4 Apr 2013 19:15:52 -0700 Subject: Fixed bugs #47675 and #64577 (fd leak on Solaris) --- NEWS | 2 +- main/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 1c52241b42..d876c36e6e 100644 --- a/NEWS +++ b/NEWS @@ -5,7 +5,7 @@ PHP NEWS - Core: . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault). (Laruence) - + . Fixed bugs #47675 and #64577 (fd leak on Solaris) ?? ??? 2013, PHP 5.3.24 diff --git a/main/main.c b/main/main.c index 654cbf8c1b..4e0294c834 100644 --- a/main/main.c +++ b/main/main.c @@ -2231,7 +2231,7 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC) zend_file_handle *prepend_file_p, *append_file_p; zend_file_handle prepend_file = {0}, append_file = {0}; #if HAVE_BROKEN_GETCWD - int old_cwd_fd = -1; + volatile int old_cwd_fd = -1; #else char *old_cwd; ALLOCA_FLAG(use_heap) -- cgit v1.2.1 From 4d4adf47e0a31f56e7c2ecf777895de3d70b05ea Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 9 Apr 2013 10:04:01 +0200 Subject: fix null deref --- ext/gd/libgd/gd_rotate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ext/gd/libgd/gd_rotate.c b/ext/gd/libgd/gd_rotate.c index 430d51d963..e9a393d943 100644 --- a/ext/gd/libgd/gd_rotate.c +++ b/ext/gd/libgd/gd_rotate.c @@ -262,12 +262,13 @@ gdImagePtr gdImageRotate180 (gdImagePtr src, int ignoretransparent) f = gdImageGetPixel; } dst = gdImageCreateTrueColor(src->sx, src->sy); - dst->transparent = src->transparent; if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; + dst->transparent = src->transparent; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { -- cgit v1.2.1 From 88b3cdc4e9ec199044dd9b2d82d12639226091dd Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 9 Apr 2013 10:09:17 +0200 Subject: fix possible NULL deref --- ext/gd/libgd/gd_rotate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ext/gd/libgd/gd_rotate.c b/ext/gd/libgd/gd_rotate.c index e9a393d943..e94809ae77 100644 --- a/ext/gd/libgd/gd_rotate.c +++ b/ext/gd/libgd/gd_rotate.c @@ -216,12 +216,13 @@ gdImagePtr gdImageRotate90 (gdImagePtr src, int ignoretransparent) f = gdImageGetPixel; } dst = gdImageCreateTrueColor(src->sy, src->sx); - dst->transparent = src->transparent; if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; + dst->transparent = src->transparent; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { @@ -310,12 +311,13 @@ gdImagePtr gdImageRotate270 (gdImagePtr src, int ignoretransparent) f = gdImageGetPixel; } dst = gdImageCreateTrueColor (src->sy, src->sx); - dst->transparent = src->transparent; if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; + dst->transparent = src->transparent; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { -- cgit v1.2.1