ID: 26056
Updated by: [EMAIL PROTECTED]
Reported By: AxelLuttgens at swing dot be
-Status: Open
+Status: Assigned
Bug Type: Compile Warning
Operating System: Darwin 7.0.0 (Panther)
-PHP Version: 4.3.3
+PHP Version: 4CVS
-Assigned To:
+Assigned To: helly
New Comment:
Fixed in PHP5. Marcus, can you look into doing a MFH?
Previous Comments:
------------------------------------------------------------------------
[2003-10-31 09:27:39] AxelLuttgens at swing dot be
Description:
------------
When compiling PHP, I get two warnings related to lines 1555 and 1582
of exif.c; both warnings read:
warning: passing arg 3 of `php_addslashes' from incompatible pointer
type
Function php_addslashes gets called 4 times in file ext/exif/exif.c (/*
$Id: exif.c,v 1.118.2.23 2003/06/25 13:21:54 edink Exp $ */).
In function exif_iif_add_value, where argument 'length' is of type
size_t:
line 1555: info_value->s = php_addslashes(value, length, &length, 0
TSRMLS_CC);
line 1582: info_value->s = php_addslashes(value, length, &length, 0
TSRMLS_CC);
In function exif_iif_add_str:
line 1708: info_data->value.s = php_addslashes(value,
strlen(value), NULL, 0 TSRMLS_CC);
In function exif_iif_add_buffer, where argument 'length' is of type
int:
line 1756: info_data->value.s = php_addslashes(value, length,
&length, 0 TSRMLS_CC);
In ext/standard/string.c, definition of php_addsclashes reads as:
PHPAPI char *php_addslashes(char *str, int length, int *new_length, int
should_free TSRMLS_DC)
{
...
}
which is consistent with what appears in ext/standard/php_string.h:
PHPAPI char *php_addslashes(char *str, int length, int *new_length, int
freeit TSRMLS_DC);
Clearly, line 1708 is a don't care, and line 1756 is just compliant
with the definition of php_addslashes.
But lines 1555 and 1582 both use a length of type size_t instead of
type int.
I am wondering what the compiler really compiles (as it just warns and
goes on).
Could this be a source of confusion (such as an unsigned long being
interpreted as a signed one)?
And would it be safe to just change the definition of function
exif_iif_add_value so as to set type of argument 'lentgh' to int
instead of size_t?
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26056&edit=1