summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipensp@gmail.com>2012-05-16 08:40:12 -0300
committerFelipe Pena <felipensp@gmail.com>2012-05-16 08:40:12 -0300
commit93c91c733cf2259263e4d8c0f3ccc254246d404d (patch)
tree22ec97bc4964f482d1d08d648c95af70c7978573
parent1af8b3f8836bd8fb997ebfead82cbf21d33ed916 (diff)
downloadphp-git-93c91c733cf2259263e4d8c0f3ccc254246d404d.tar.gz
- Fixed bug #55299 (multiple null pointer in win32/registry.c)
-rw-r--r--win32/registry.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/win32/registry.c b/win32/registry.c
index 35b411f4ce..45e842b455 100644
--- a/win32/registry.c
+++ b/win32/registry.c
@@ -77,11 +77,16 @@ static int LoadDirectory(HashTable *directories, HKEY key, char *path, int path_
value_len = max_value+1;
if (RegEnumValue(key, i, name, &name_len, NULL, &type, value, &value_len) == ERROR_SUCCESS) {
if ((type == REG_SZ) || (type == REG_EXPAND_SZ)) {
+ ht = (HashTable*)malloc(sizeof(HashTable));
if (!ht) {
- ht = (HashTable*)malloc(sizeof(HashTable));
- zend_hash_init(ht, 0, NULL, ZVAL_INTERNAL_PTR_DTOR, 1);
+ return ret;
}
+ zend_hash_init(ht, 0, NULL, ZVAL_INTERNAL_PTR_DTOR, 1);
+
data = (zval*)malloc(sizeof(zval));
+ if (!data) {
+ return ret;
+ }
INIT_PZVAL(data);
Z_STRVAL_P(data) = zend_strndup(value, value_len-1);
Z_STRLEN_P(data) = value_len-1;
@@ -174,6 +179,9 @@ void UpdateIniFromRegistry(char *path TSRMLS_DC)
if (!PW32G(registry_directories)) {
PW32G(registry_directories) = (HashTable*)malloc(sizeof(HashTable));
+ if (!PW32G(registry_directories)) {
+ return;
+ }
zend_hash_init(PW32G(registry_directories), 0, NULL, delete_internal_hashtable, 1);
if (!OpenPhpRegistryKey("\\Per Directory Values", &PW32G(registry_key))) {
PW32G(registry_key) = NULL;