cvs: /php4/ext/hyperwave hg_comm.c hw.c
| From: | Uwe Steinmann | Date: | Tue, 17 Aug 1999 09:59:19 +0000 |
| Subject: | cvs: /php4/ext/hyperwave hg_comm.c hw.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-3474@lists.php.net to get a copy of this message | ||
steinm Tue Aug 17 05:59:19 1999 EDT
Modified files:
/php4/ext/hyperwave hg_comm.c hw.c
Log:
fixed potential segm faults
Index: php4/ext/hyperwave/hg_comm.c
diff -u php4/ext/hyperwave/hg_comm.c:1.9 php4/ext/hyperwave/hg_comm.c:1.10
--- php4/ext/hyperwave/hg_comm.c:1.9 Fri Aug 6 02:39:54 1999
+++ php4/ext/hyperwave/hg_comm.c Tue Aug 17 05:59:18 1999
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hg_comm.c,v 1.9 1999/08/06 06:39:54 steinm Exp $ */
+/* $Id: hg_comm.c,v 1.10 1999/08/17 09:59:18 steinm Exp $ */
/* #define HW_DEBUG */
@@ -496,7 +496,7 @@
snprintf(bgstr, BUFFERLEN, " background='%s'", cur_ptr->link);
break;
case HW_INTAG_LINK:
- snprintf(istr, BUFFERLEN, " %s='%s' start=%d", cur_ptr->tagattr,
cur_ptr->link, cur_ptr->start);
+ snprintf(istr, BUFFERLEN, " %s='%s'", cur_ptr->tagattr,
cur_ptr->link);
offset -= 4; /* because there is no closing tag </A> */
/* laststart = cur_ptr->start; */
break;
@@ -1809,8 +1809,8 @@
ptr = (int *) retmsg->buf;
if(*ptr == 0) {
attributes = estrdup(retmsg->buf+sizeof(int));
- efree(retmsg);
efree(retmsg->buf);
+ efree(retmsg);
} else {
error = *ptr;
attributes = NULL;
Index: php4/ext/hyperwave/hw.c
diff -u php4/ext/hyperwave/hw.c:1.15 php4/ext/hyperwave/hw.c:1.16
--- php4/ext/hyperwave/hw.c:1.15 Fri Aug 6 06:41:58 1999
+++ php4/ext/hyperwave/hw.c Tue Aug 17 05:59:18 1999
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hw.c,v 1.15 1999/08/06 10:41:58 steinm Exp $ */
+/* $Id: hw.c,v 1.16 1999/08/17 09:59:18 steinm Exp $ */
#if COMPILE_DL
#include "dl/phpdl.h"
#endif
@@ -389,7 +389,7 @@
int i, count, keytype;
ulong length;
char *key, str[BUFFERLEN], *objrec = NULL;
- pval *keydata;
+ zval *keydata, **keydataptr;
if(NULL == lht)
return NULL;
@@ -403,7 +403,8 @@
for(i=0; i<count; i++) {
keytype = zend_hash_get_current_key(lht, &key, &length);
if(HASH_KEY_IS_STRING == keytype) {
- zend_hash_get_current_data(lht, (void **) &keydata);
+ zend_hash_get_current_data(lht, (void **) &keydataptr);
+ keydata = *keydataptr;
switch(keydata->type) {
case IS_STRING:
snprintf(str, BUFFERLEN, "%s=%s\n", key, keydata->value.str.val);
@@ -456,8 +457,8 @@
static int * make_ints_from_array(HashTable *lht) {
int i, count;
- int *objrec = NULL;
- pval *keydata;
+ int *objids = NULL;
+ zval **keydata;
if(NULL == lht)
return NULL;
@@ -466,20 +467,20 @@
return NULL;
zend_hash_internal_pointer_reset(lht);
- if(NULL == (objrec = emalloc(count*sizeof(int))))
+ if(NULL == (objids = emalloc(count*sizeof(int))))
return NULL;
for(i=0; i<count; i++) {
zend_hash_get_current_data(lht, (void **) &keydata);
- switch(keydata->type) {
+ switch((*keydata)->type) {
case IS_LONG:
- objrec[i] = keydata->value.lval;
+ objids[i] = (*keydata)->value.lval;
break;
default:
- objrec[i] = 0;
+ objids[i] = 0;
}
zend_hash_move_forward(lht);
}
- return objrec;
+ return objids;
}
#define BUFFERLEN 30
@@ -1175,7 +1176,7 @@
char **objects = NULL;
int count, *ids, i;
HashTable *lht;
- pval *keydata;
+ zval **keydata;
lht = argv[1]->value.ht;
if(0 == (count = zend_hash_num_elements(lht)))
@@ -1185,12 +1186,12 @@
zend_hash_internal_pointer_reset(lht);
for(i=0; i<count; i++) {
zend_hash_get_current_data(lht, (void **) &keydata);
- switch(keydata->type) {
+ switch((*keydata)->type) {
case IS_LONG:
- ids[i] = keydata->value.lval;
+ ids[i] = (*keydata)->value.lval;
break;
default:
- ids[i] = keydata->value.lval;
+ ids[i] = (*keydata)->value.lval;
}
zend_hash_move_forward(lht);
}
@@ -1375,12 +1376,13 @@
modification = strdup("");
for(i=0; i<zend_hash_num_elements(newobjarr); i++) {
char *key, *str, *str1, newattribute[BUFFERLEN];
- pval *data;
+ pval *data, **dataptr;
int j, noinsert=1;
ulong ind;
zend_hash_get_current_key(newobjarr, &key, &ind);
- zend_hash_get_current_data(newobjarr, (void *) &data);
+ zend_hash_get_current_data(newobjarr, (void *) &dataptr);
+ data = *dataptr;
switch(data->type) {
case IS_STRING:
if(strlen(data->value.str.val) == 0)
@@ -1474,12 +1476,13 @@
zend_hash_internal_pointer_reset(addobjarr);
for(i=0; i<zend_hash_num_elements(addobjarr); i++) {
char *key, addattribute[BUFFERLEN];
- pval *data;
+ zval *data, **dataptr;
int noinsert=1;
ulong ind;
zend_hash_get_current_key(addobjarr, &key, &ind);
- zend_hash_get_current_data(addobjarr, (void *) &data);
+ zend_hash_get_current_data(addobjarr, (void *) &dataptr);
+ data = *dataptr;
switch(data->type) {
case IS_STRING:
if(strlen(data->value.str.val) > 0) {
@@ -1542,12 +1545,13 @@
nr = zend_hash_num_elements(remobjarr);
for(i=0; i<nr; i++) {
char *key, remattribute[BUFFERLEN];
- pval *data;
+ zval *data, **dataptr;
int noinsert=1;
ulong ind;
zend_hash_get_current_key(remobjarr, &key, &ind);
- zend_hash_get_current_data(remobjarr, (void *) &data);
+ zend_hash_get_current_data(remobjarr, (void *) &dataptr);
+ data = *dataptr;
switch(data->type) {
case IS_STRING:
if(strlen(data->value.str.val) > 0) {