cvs: php4 /ext/sybase php_sybase_db.c

From: Date: Tue, 10 Dec 2002 15:18:02 +0000
Subject: cvs: php4 /ext/sybase php_sybase_db.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-17058@lists.php.net to get a copy of this message
sesser Tue Dec 10 10:18:02 2002 EDT Modified files: /php4/ext/sybase php_sybase_db.c Log: fixing crashbug patch by freddy77@angelfire.com Index: php4/ext/sybase/php_sybase_db.c diff -u php4/ext/sybase/php_sybase_db.c:1.38 php4/ext/sybase/php_sybase_db.c:1.39 --- php4/ext/sybase/php_sybase_db.c:1.38 Wed Oct 9 09:29:04 2002 +++ php4/ext/sybase/php_sybase_db.c Tue Dec 10 10:18:00 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_db.c,v 1.38 2002/10/09 13:29:04 iliaa Exp $ */ +/* $Id: php_sybase_db.c,v 1.39 2002/12/10 15:18:00 sesser Exp $ */ #ifdef HAVE_CONFIG_H @@ -720,11 +720,14 @@ if (dbwillconvert(coltype(offset),SYBCHAR)) { char *res_buf; int res_length = dbdatlen(sybase_ptr->link,offset); + int src_length = res_length; register char *p; switch (coltype(offset)) { case SYBBINARY: case SYBVARBINARY: + res_length *= 2; + break; case SYBCHAR: case SYBVARCHAR: case SYBTEXT: @@ -740,15 +743,16 @@ memset(res_buf,' ',res_length+1); /* XXX i'm sure there's a better way but i don't have sybase here to test 991105 thies@thieso.net */ - dbconvert(NULL,coltype(offset),dbdata(sybase_ptr->link,offset), res_length,SYBCHAR,res_buf,-1); + dbconvert(NULL,coltype(offset),dbdata(sybase_ptr->link,offset), res_length,SYBCHAR,res_buf,res_length); /* get rid of trailing spaces */ p = res_buf + res_length; - while (*p == ' ') { + while (p >= res_buf && *p == ' ') { p--; - res_length--; } *(++p) = 0; /* put a trailing NULL */ + res_length = p - res_buf; + Z_STRLEN_P(result) = res_length; Z_STRVAL_P(result) = res_buf;

« previous php.cvs (#17058) next »