]> granicus.if.org Git - php/commitdiff
MFB
authorIlia Alshanetsky <iliaa@php.net>
Mon, 28 May 2007 23:14:57 +0000 (23:14 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 28 May 2007 23:14:57 +0000 (23:14 +0000)
ext/dbase/dbf_rec.c
ext/simplexml/simplexml.c
ext/sockets/sockets.c
ext/sqlite/sess_sqlite.c
ext/standard/md5.c
ext/standard/md5.h
ext/standard/sha1.c

index 31a15eded5234bd8a915850f0359539defe88acc..cc12985cc1efd34f3881f20be01780d857f93619 100644 (file)
@@ -152,8 +152,7 @@ char *get_field_val(char *rp, dbfield_t *fldp, char *cp)
        if ( !cp )
                cp = (char *)malloc(flen + 1);
        if ( cp ) {
-               strncpy(cp, &rp[fldp->db_foffset], flen);
-               cp[flen] = 0;
+               strlcpy(cp, &rp[fldp->db_foffset], flen + 1);
        }
        return cp;
 }
index 6c14cab32854e168c61aedafc58af8978eaf2294..3fb12d59e89e6f725326cd2d978b938088e07f3c 100644 (file)
@@ -1605,8 +1605,8 @@ SXE_METHOD(addAttribute)
                return;
        }
 
-       if (qname_len == 0 || value_len == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attribute name and value are required");
+       if (qname_len == 0) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attribute name is required");
                return;
        }
 
index 82918953051c062c6eb6f7f624d8fee13d765690..5ec6d53aa929bb2b3765f5a06099e158f33980eb 100644 (file)
@@ -156,7 +156,7 @@ zend_module_entry sockets_module_entry = {
        sockets_functions,
        PHP_MINIT(sockets),
        NULL,
-       PHP_RINIT(sockets),
+       NULL,
        PHP_RSHUTDOWN(sockets),
        PHP_MINFO(sockets),
        NO_VERSION_YET,
@@ -521,13 +521,6 @@ PHP_MINFO_FUNCTION(sockets)
 }
 /* }}} */
 
-/* {{{ PHP_RINIT_FUNCTION */
-PHP_RINIT_FUNCTION(sockets)
-{
-       return SUCCESS;
-}
-/* }}} */
-
 /* {{{ PHP_RSHUTDOWN_FUNCTION */
 PHP_RSHUTDOWN_FUNCTION(sockets)
 {
index 39a272965f0bc7d5d8985531738f6febe50e4751..ff5c4db7aa3416b40ebd481cdadef0c1c530fe0d 100644 (file)
@@ -109,9 +109,13 @@ PS_READ_FUNC(sqlite)
                case SQLITE_ROW:
                        if (rowdata[0] != NULL) {
                                *vallen = strlen(rowdata[0]);
-                               *val = emalloc(*vallen);
-                               *vallen = sqlite_decode_binary(rowdata[0], *val);
-                               (*val)[*vallen] = '\0';
+                               if (*vallen) {
+                                       *val = emalloc(*vallen);
+                                       *vallen = sqlite_decode_binary(rowdata[0], *val);
+                                       (*val)[*vallen] = '\0';
+                               } else {
+                                       *val = STR_EMPTY_ALLOC();
+                               }
                        }
                        break;
                default:
index cfa0d5a4589627d7778233bdb30d0f39c0e69fb3..fa0d367b39df877d1846debd52c7b102cdf8a925 100644 (file)
 
 PHPAPI void make_digest(char *md5str, unsigned char *digest)
 {
+       make_digest_ex(md5str, digest, 16);
+}
+
+PHPAPI void make_digest_ex(char *md5str, unsigned char *digest, int len)
+{
+       static const char hexits[17] = "0123456789abcdef";
        int i;
 
-       for (i = 0; i < 16; i++) {
-               sprintf(md5str, "%02x", digest[i]);
-               md5str += 2;
+       for (i = 0; i < len; i++) {
+               md5str[i * 2]       = hexits[digest[i] >> 4];
+               md5str[(i * 2) + 1] = hexits[digest[i] &  0x0F];
        }
-
-       *md5str = '\0';
+       md5str[len * 2] = '\0';
 }
 
 /* {{{ proto string md5(string str, [ bool raw_output]) U
@@ -70,7 +75,7 @@ PHP_NAMED_FUNCTION(php_if_md5)
        if (raw_output) {
                RETVAL_STRINGL((char*)digest, 16, 1);
        } else {
-               make_digest(md5str, digest);
+               make_digest_ex(md5str, digest. 16);
                RETVAL_ASCII_STRING(md5str, ZSTR_DUPLICATE);
        }
 
@@ -130,7 +135,7 @@ PHP_NAMED_FUNCTION(php_if_md5_file)
        if (raw_output) {
                RETURN_STRINGL((char*)digest, 16, 1);
        } else {
-               make_digest(md5str, digest);
+               make_digest_ex(md5str, digest, 16);
                RETVAL_ASCII_STRING(md5str, ZSTR_DUPLICATE);
        }
 }
index 82f2e75a65b75d3b112a8e11a11852af5a2cf0af..6926ee4fde6779ccecd6e62330c61ae6cf75b38d 100644 (file)
@@ -55,6 +55,7 @@ typedef struct {
 } PHP_MD5_CTX;
 
 PHPAPI void make_digest(char *md5str, unsigned char *digest);
+PHPAPI void make_digest_ex(char *md5str, unsigned char *digest, int len);
 PHPAPI void PHP_MD5Init(PHP_MD5_CTX *);
 PHPAPI void PHP_MD5Update(PHP_MD5_CTX *, const unsigned char *, unsigned int);
 PHPAPI void PHP_MD5Final(unsigned char[16], PHP_MD5_CTX *);
index aca8ef80de0589ca10fc06ce5d3c458822e5e6e7..33275c928771c890f8601d82eb7996fb8ed24b72 100644 (file)
 /* This code is heavily based on the PHP md5 implementation */ 
 
 #include "sha1.h"
+#include "md5.h"
 
 PHPAPI void make_sha1_digest(char *sha1str, unsigned char *digest)
 {
-       int i;
-
-       for (i = 0; i < 20; i++) {
-               sprintf(sha1str, "%02x", digest[i]);
-               sha1str += 2;
-       }
-
-       *sha1str = '\0';
+       make_digest_ex(sha1str, digest, 20);
 }
 
 /* {{{ proto string sha1(string str [, bool raw_output]) U
@@ -68,7 +62,7 @@ PHP_FUNCTION(sha1)
        if (raw_output) {
                RETVAL_STRINGL((char*)digest, 20, 1);
        } else {
-               make_sha1_digest(sha1str, digest);
+               make_digest_ex(sha1str, digest, 20);
                RETVAL_ASCII_STRING(sha1str, ZSTR_DUPLICATE);
        }
 
@@ -130,7 +124,7 @@ PHP_FUNCTION(sha1_file)
        if (raw_output) {
                RETURN_STRINGL((char*)digest, 20, 1);
        } else {
-               make_sha1_digest(sha1str, digest);
+               make_digest_ex(sha1str, digest, 20);
                RETVAL_ASCII_STRING(sha1str, ZSTR_DUPLICATE);
        }
 }