yohgaki         Mon Nov 25 21:15:59 2002 EDT

  Modified files:              (Branch: PHP_4_3)
    /php4/ext/pgsql     pgsql.c 
  Log:
  MFH
  
  
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.244 php4/ext/pgsql/pgsql.c:1.244.2.1
--- php4/ext/pgsql/pgsql.c:1.244        Tue Nov 12 04:07:36 2002
+++ php4/ext/pgsql/pgsql.c      Mon Nov 25 21:15:58 2002
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.244 2002/11/12 09:07:36 yohgaki Exp $ */
+/* $Id: pgsql.c,v 1.244.2.1 2002/11/26 02:15:58 yohgaki Exp $ */
 
 #include <stdlib.h>
 
@@ -2710,15 +2710,13 @@
                        case 3:
                                if (isdigit(*sp))               /* state=4 */
                                {
-                                       unsigned int  v,i;
-                                       unsigned char buf[4]; /* 000 + '\0' */
-
+                                       unsigned char *start, *end, buf[4]; /* 000 + 
+'\0' */
+                                       
                                        bp -= 3;
-                                       for (i = 0; i < 3; i++)
-                                               buf[i] = *((sp-2)+i);
-                                       buf[i] = '\0';
-                                       sscanf(buf, "%03o", &v);
-                                       *bp = v;
+                                       memcpy(buf, sp-2, 3);
+                                       buf[3] = '\0';
+                                       start = buf;
+                                       *bp = (unsigned char)strtoul(start, (char 
+**)&end, 8);
                                        buflen -= 3;
                                        state = 0;
                                }
@@ -2730,9 +2728,8 @@
                                break;
                }
        }
-       buffer = erealloc(buffer, buflen);
-       if (buffer == NULL)
-               return NULL;
+       buffer = erealloc(buffer, buflen+1);
+       buffer[buflen] = '\0';
 
        *retbuflen = buflen;
        return buffer;



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

Reply via email to