summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2007-05-28 23:14:57 +0000
committerIlia Alshanetsky <iliaa@php.net>2007-05-28 23:14:57 +0000
commitde573ba7ff35e1d9f338e574067997745db54352 (patch)
treeeaa51fdc44bb3404d67e1ab274d3e5def9054721 /ext
parent66526cee92c9e285c0a73e35d5ba09e17e810e9a (diff)
downloadphp-git-de573ba7ff35e1d9f338e574067997745db54352.tar.gz
MFB
Diffstat (limited to 'ext')
-rw-r--r--ext/dbase/dbf_rec.c3
-rw-r--r--ext/simplexml/simplexml.c4
-rw-r--r--ext/sockets/sockets.c9
-rw-r--r--ext/sqlite/sess_sqlite.c10
-rw-r--r--ext/standard/md5.c19
-rw-r--r--ext/standard/md5.h1
-rw-r--r--ext/standard/sha1.c14
7 files changed, 28 insertions, 32 deletions
diff --git a/ext/dbase/dbf_rec.c b/ext/dbase/dbf_rec.c
index 31a15eded5..cc12985cc1 100644
--- a/ext/dbase/dbf_rec.c
+++ b/ext/dbase/dbf_rec.c
@@ -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;
}
diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c
index 6c14cab328..3fb12d59e8 100644
--- a/ext/simplexml/simplexml.c
+++ b/ext/simplexml/simplexml.c
@@ -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;
}
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index 8291895305..5ec6d53aa9 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -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)
{
diff --git a/ext/sqlite/sess_sqlite.c b/ext/sqlite/sess_sqlite.c
index 39a272965f..ff5c4db7aa 100644
--- a/ext/sqlite/sess_sqlite.c
+++ b/ext/sqlite/sess_sqlite.c
@@ -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:
diff --git a/ext/standard/md5.c b/ext/standard/md5.c
index cfa0d5a458..fa0d367b39 100644
--- a/ext/standard/md5.c
+++ b/ext/standard/md5.c
@@ -29,14 +29,19 @@
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);
}
}
diff --git a/ext/standard/md5.h b/ext/standard/md5.h
index 82f2e75a65..6926ee4fde 100644
--- a/ext/standard/md5.h
+++ b/ext/standard/md5.h
@@ -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 *);
diff --git a/ext/standard/sha1.c b/ext/standard/sha1.c
index aca8ef80de..33275c9287 100644
--- a/ext/standard/sha1.c
+++ b/ext/standard/sha1.c
@@ -24,17 +24,11 @@
/* 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);
}
}