martin Wed Jan 28 11:27:43 2004 EDT
Modified files: (Branch: 1)
/php-src/ext/gd gd_ctx.c
Log:
Bug fix: Images would be broken on big-endian machines because the putc
function wrote the first (instead of "the low order") byte. That resulted
in unexpected zero bytes.
http://cvs.php.net/diff.php/php-src/ext/gd/gd_ctx.c?r1=1.15.2.1&r2=1.15.2.2&ty=u
Index: php-src/ext/gd/gd_ctx.c
diff -u php-src/ext/gd/gd_ctx.c:1.15.2.1 php-src/ext/gd/gd_ctx.c:1.15.2.2
--- php-src/ext/gd/gd_ctx.c:1.15.2.1 Tue Mar 11 23:16:31 2003
+++ php-src/ext/gd/gd_ctx.c Wed Jan 28 11:27:42 2004
@@ -1,3 +1,20 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 4 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2003 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.0 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_0.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | [EMAIL PROTECTED] so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Stanislav Malyshev <[EMAIL PROTECTED]> |
+ +----------------------------------------------------------------------+
+ */
#include "php_gd.h"
@@ -5,8 +22,13 @@
static void _php_image_output_putc(struct gdIOCtx *ctx, int c)
{
+ /* without the following downcast, the write will fail
+ * (i.e., will write a zero byte) for all
+ * big endian architectures:
+ */
+ unsigned char ch = (unsigned char) c;
TSRMLS_FETCH();
- php_write(&c, 1 TSRMLS_CC);
+ php_write(&ch, 1 TSRMLS_CC);
}
static int _php_image_output_putbuf(struct gdIOCtx *ctx, const void* buf, int l)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php