Hello Antony,

  well it actually wasn't me and not this commit - but it was co-work!

  so i'll have a look :-)

marcus

Thursday, February 24, 2005, 12:09:25 PM, you wrote:

> On Thu, 24 Feb 2005 00:12:15 -0000
> "Marcus Boerger" <[EMAIL PROTECTED]> wrote:

>> helly         Wed Feb 23 19:12:15 2005 EDT
>> 
>>   Modified files:              
>>     /php-src/ext/standard     image.c 
>>   Log:
>>   - Prevent superflous memory allocation

> Marcus, this patch breaks JP2 support.

> See these tests (they fail with the patch):
> php-src/ext/standard/tests/image/getimagesize.phpt
> php-src/ext/standard/tests/image/image_type_to_mime_type.phpt

   
>> http://cvs.php.net/diff.php/php-src/ext/standard/image.c?r1=1.104&r2=1.105&ty=u
>> Index: php-src/ext/standard/image.c
>> diff -u php-src/ext/standard/image.c:1.104
>> php-src/ext/standard/image.c:1.105 ---
>> php-src/ext/standard/image.c:1.104    Wed Feb 23 18:39:36 2005 +++
>> php-src/ext/standard/image.c       Wed Feb 23 19:12:15 2005
>> @@ -17,7 +17,7 @@
>>     +----------------------------------------------------------------
>>     ------+
>>   */
>>  
>> -/* $Id: image.c,v 1.104 2005/02/23 23:39:36 iliaa Exp $ */
>> +/* $Id: image.c,v 1.105 2005/02/24 00:12:15 helly Exp $ */
>>  
>>  #include "php.h"
>>  #include <stdio.h>
>> @@ -867,10 +867,11 @@
>>   */
>>  static struct gfxinfo *php_handle_iff(php_stream * stream TSRMLS_DC)
>>  {
>> -     struct gfxinfo *result = NULL;
>> +     struct gfxinfo * result;
>>       unsigned char a[10];
>>       int chunkId;
>>       int size;
>> +     short width, height, bits;
>>  
>>       if (php_stream_read(stream, a, 8) != 8) {
>>               return NULL;
>> @@ -893,18 +894,20 @@
>>                       size++;
>>               }
>>               if (chunkId == 0x424d4844) { /* BMHD chunk */
>> -                     if (php_stream_read(stream, a, 9) != 9) {
>> +                     if (size < 9 || php_stream_read(stream, a, 9) != 9) {
>>                               return NULL;
>>                       }
>> -                     result = (struct gfxinfo *) ecalloc(1, sizeof(struct
>> gfxinfo)); -                  result->width    = php_ifd_get16s(a+0, 1);
>> -                     result->height   = php_ifd_get16s(a+2, 1);
>> -                     result->bits     = a[8] & 0xff;
>> -                     result->channels = 0;
>> -                     if (result->width > 0 && result->height > 0 &&
>> result->bits > 0 && result->bits < 33) { +                    width  =
>> php_ifd_get16s(a+0, 1); +                     height = php_ifd_get16s(a+2, 
>> 1);
>> +                     bits   = a[8] & 0xff;
>> +                     if (width > 0 && height > 0 && bits > 0 && bits < 33) {
>> +                             result = (struct gfxinfo *) ecalloc(1, 
>> sizeof(struct
>> gfxinfo)); +                          result->width    = width;
>> +                             result->height   = height;
>> +                             result->bits     = bits;
>> +                             result->channels = 0;
>>                               return result;
>>                       }
>> -                     efree(result);
>>               } else {
>>                       if (php_stream_seek(stream, size, SEEK_CUR)) {
>>                               return NULL;
>> 
>> -- 
>> PHP CVS Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>> 
>> 





-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to