diff options
| author | Felipe Pena <felipensp@gmail.com> | 2012-05-16 08:40:12 -0300 | 
|---|---|---|
| committer | Felipe Pena <felipensp@gmail.com> | 2012-05-16 08:40:12 -0300 | 
| commit | 93c91c733cf2259263e4d8c0f3ccc254246d404d (patch) | |
| tree | 22ec97bc4964f482d1d08d648c95af70c7978573 | |
| parent | 1af8b3f8836bd8fb997ebfead82cbf21d33ed916 (diff) | |
| download | php-git-93c91c733cf2259263e4d8c0f3ccc254246d404d.tar.gz | |
- Fixed bug #55299 (multiple null pointer in win32/registry.c)
| -rw-r--r-- | win32/registry.c | 12 | 
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; | 
