cvs: /php4/ext/zlib zlib.c
| From: | Stefan Roehrich | Date: | Tue, 07 Sep 1999 19:05:37 +0000 |
| Subject: | cvs: /php4/ext/zlib zlib.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4209@lists.php.net to get a copy of this message | ||
sr Tue Sep 7 15:05:37 1999 EDT
Modified files:
/php4/ext/zlib zlib.c
Log:
Fixed behavior with empty doc_root.
gzgetss() now uses _php3_strip_tags.
Index: php4/ext/zlib/zlib.c
diff -u php4/ext/zlib/zlib.c:1.13 php4/ext/zlib/zlib.c:1.14
--- php4/ext/zlib/zlib.c:1.13 Mon Sep 6 15:09:47 1999
+++ php4/ext/zlib/zlib.c Tue Sep 7 15:05:37 1999
@@ -16,7 +16,7 @@
| Stefan Röhrich <sr@linux.de> |
+----------------------------------------------------------------------+
*/
-/* $Id: zlib.c,v 1.13 1999/09/06 19:09:47 sr Exp $ */
+/* $Id: zlib.c,v 1.14 1999/09/07 19:05:37 sr Exp $ */
#define IS_EXT_MODULE
#include "php.h"
@@ -203,7 +203,11 @@
if (*filename == '/') {
#endif
if (PG(safe_mode)) {
- snprintf(trypath,MAXPATHLEN,"%s%s",PG(doc_root),filename);
+ if(PG(doc_root)) {
+ snprintf(trypath, MAXPATHLEN, "%s%s", PG(doc_root), filename);
+ } else {
+ strncpy(trypath,filename,MAXPATHLEN);
+ }
if (!_php3_checkuid(trypath,2)) {
return(NULL);
}
@@ -478,8 +482,8 @@
{
pval *fd, *bytes;
gzFile *zp;
- int len, br;
- char *buf, *p, *rbuf, *rp, c, lc;
+ int len;
+ char *buf;
ZLIBLS_FETCH();
if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &fd, &bytes) == FAILURE) {
@@ -500,86 +504,9 @@
RETURN_FALSE;
}
- rbuf = estrdup(buf);
- c = *buf;
- lc = '\0';
- p = buf;
- rp = rbuf;
- br = 0;
-
- while (c) {
- switch (c) {
- case '<':
- if (ZLIBG(gzgetss_state) == 0) {
- lc = '<';
- ZLIBG(gzgetss_state) = 1;
- }
- break;
-
- case '(':
- if (ZLIBG(gzgetss_state) == 2) {
- if (lc != '\"') {
- lc = '(';
- br++;
- }
- } else if (ZLIBG(gzgetss_state) == 0) {
- *(rp++) = c;
- }
- break;
-
- case ')':
- if (ZLIBG(gzgetss_state) == 2) {
- if (lc != '\"') {
- lc = ')';
- br--;
- }
- } else if (ZLIBG(gzgetss_state) == 0) {
- *(rp++) = c;
- }
- break;
-
- case '>':
- if (ZLIBG(gzgetss_state) == 1) {
- lc = '>';
- ZLIBG(gzgetss_state) = 0;
- } else if (ZLIBG(gzgetss_state) == 2) {
- if (!br && lc != '\"') {
- ZLIBG(gzgetss_state) = 0;
- }
- }
- break;
-
- case '\"':
- if (ZLIBG(gzgetss_state) == 2) {
- if (lc == '\"') {
- lc = '\0';
- } else if (lc != '\\') {
- lc = '\"';
- }
- } else if (ZLIBG(gzgetss_state) == 0) {
- *(rp++) = c;
- }
- break;
-
- case '?':
- if (ZLIBG(gzgetss_state)==1) {
- br=0;
- ZLIBG(gzgetss_state)=2;
- break;
- }
- /* fall-through */
-
- default:
- if (ZLIBG(gzgetss_state) == 0) {
- *(rp++) = c;
- }
- }
- c = *(++p);
- }
- *rp = '\0';
- efree(buf);
- RETVAL_STRING(rbuf,1);
- efree(rbuf);
+ _php3_strip_tags(buf, ZLIBG(gzgetss_state));
+ RETURN_STRING(buf, 0);
+
}
/* }}} */