From: Ilia Alshanetsky Date: Fri, 5 Nov 2004 00:05:55 +0000 (+0000) Subject: Simplify and cleanup code. X-Git-Tag: RELEASE_0_2~730 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=92a641e5e77ba9e97e7dcb6ec7e7484f7ddab1c5;p=php Simplify and cleanup code. --- diff --git a/ext/shmop/shmop.c b/ext/shmop/shmop.c index 78d9e1b973..6fe70f30b4 100644 --- a/ext/shmop/shmop.c +++ b/ext/shmop/shmop.c @@ -164,34 +164,33 @@ PHP_FUNCTION(shmop_open) break; default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid access mode"); - efree(shmop); - RETURN_FALSE; + goto err; } shmop->shmid = shmget(shmop->key, shmop->size, shmop->shmflg); if (shmop->shmid == -1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to attach or create shared memory segment"); - efree(shmop); - RETURN_FALSE; + goto err; } if (shmctl(shmop->shmid, IPC_STAT, &shm)) { - efree(shmop); php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to get shared memory segment information"); - RETURN_FALSE; + goto err; } shmop->addr = shmat(shmop->shmid, 0, shmop->shmatflg); if (shmop->addr == (char*) -1) { - efree(shmop); php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to attach to shared memory segment"); - RETURN_FALSE; + goto err; } shmop->size = shm.shm_segsz; rsid = zend_list_insert(shmop, shm_type); RETURN_LONG(rsid); +err: + efree(shmop); + RETURN_FALSE; } /* }}} */ @@ -222,12 +221,7 @@ PHP_FUNCTION(shmop_read) RETURN_FALSE; } - if (start + count > shmop->size) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "count is out of range"); - RETURN_FALSE; - } - - if (count < 0 ){ + if (start + count > shmop->size || count < 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "count is out of range"); RETURN_FALSE; }