Browse Source

Make zlib compile

experimental/newoperator
Rasmus Lerdorf 27 years ago
parent
commit
806dfc2a76
  1. 42
      ext/zlib/zlib.c

42
ext/zlib/zlib.c

@ -96,12 +96,6 @@ typedef struct zlib_global_struct{
#endif
int gzgetss_state;
int le_zp;
#if PHP_31
int magic_quotes_runtime;
int safe_mode;
char *include_path;
char *doc_root;
#endif
#if defined(THREAD_SAFE)
}zlib_global_struct;
#endif
@ -120,12 +114,6 @@ void *zlib_mutex;
#define ZLIB_TLS_VARS
#endif
#if PHP_31
# define ZLIB_INI(a) ZLIB_GLOBAL(a)
#else
# define ZLIB_INI(a) php3_ini.a
#endif
function_entry php3_zlib_functions[] = {
{"readgzfile", php3_readgzfile, NULL},
{"gzrewind", php3_gzrewind, NULL},
@ -173,12 +161,6 @@ int php3_minit_zlib(INIT_FUNC_ARGS)
return FAILURE;
}
#endif
/* get our ini variables here */
cfg_get_long("safe_mode",&ZLIB_INI(safe_mode));
cfg_get_long("magic_quotes_runtime",&ZLIB_INI(magic_quotes_runtime));
cfg_get_string("doc_root",&ZLIB_INI(doc_root));
cfg_get_string("include_path",&ZLIB_INI(include_path));
ZLIB_GLOBAL(le_zp) = register_list_destructors(gzclose,NULL);
return SUCCESS;
}
@ -214,11 +196,11 @@ static gzFile *php3_gzopen_with_path(char *filename, char *mode, char *path, cha
static gzFile php3_gzopen_wrapper(char *path, char *mode, int options)
{
ZLIB_TLS_VARS;
if (options & USE_PATH && ZLIB_INI(include_path) != NULL) {
return php3_gzopen_with_path(path, mode, ZLIB_INI(include_path), NULL);
if (options & USE_PATH && PG(include_path) != NULL) {
return php3_gzopen_with_path(path, mode, PG(include_path), NULL);
}
else {
if (options & ENFORCE_SAFE_MODE && ZLIB_INI(safe_mode) && (!_php3_checkuid(path,1))) {
if (options & ENFORCE_SAFE_MODE && PG(safe_mode) && (!_php3_checkuid(path,1))) {
return NULL;
}
if (_php3_check_open_basedir(path)) return NULL;
@ -244,7 +226,7 @@ static gzFile *php3_gzopen_with_path(char *filename, char *mode, char *path, cha
/* Relative path open */
if (*filename == '.') {
if (ZLIB_INI(safe_mode) &&(!_php3_checkuid(filename,2))) {
if (PG(safe_mode) &&(!_php3_checkuid(filename,2))) {
return(NULL);
}
if (_php3_check_open_basedir(filename)) return NULL;
@ -261,8 +243,8 @@ static gzFile *php3_gzopen_with_path(char *filename, char *mode, char *path, cha
#else
if (*filename == '/') {
#endif
if (ZLIB_INI(safe_mode)) {
snprintf(trypath,MAXPATHLEN,"%s%s",ZLIB_INI(doc_root),filename);
if (PG(safe_mode)) {
snprintf(trypath,MAXPATHLEN,"%s%s",PG(doc_root),filename);
if (!_php3_checkuid(trypath,2)) {
return(NULL);
}
@ -279,7 +261,7 @@ static gzFile *php3_gzopen_with_path(char *filename, char *mode, char *path, cha
}
if (!path || (path && !*path)) {
if (ZLIB_INI(safe_mode) &&(!_php3_checkuid(filename,2))) {
if (PG(safe_mode) &&(!_php3_checkuid(filename,2))) {
return(NULL);
}
if (_php3_check_open_basedir(filename)) return NULL;
@ -305,7 +287,7 @@ static gzFile *php3_gzopen_with_path(char *filename, char *mode, char *path, cha
end++;
}
snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename);
if (ZLIB_INI(safe_mode)) {
if (PG(safe_mode)) {
if (stat(trypath,&sb) == 0 &&(!_php3_checkuid(trypath,2))) {
efree(pathbuf);
return(NULL);
@ -372,7 +354,7 @@ void php3_gzfile(INTERNAL_FUNCTION_PARAMETERS) {
/* Now loop through the file and do the magic quotes thing if needed */
memset(buf,0,8191);
while((int)gzgets(zp, buf, 8191)) {
if (ZLIB_INI(magic_quotes_runtime)) {
if (PG(magic_quotes_runtime)) {
int len;
slashed = _php3_addslashes(buf,0,&len,0); /* 0 = don't free source string */
@ -512,7 +494,7 @@ void php3_gzgets(INTERNAL_FUNCTION_PARAMETERS) {
efree(buf);
RETVAL_FALSE;
} else {
if (ZLIB_INI(magic_quotes_runtime)) {
if (PG(magic_quotes_runtime)) {
return_value->value.str.val = _php3_addslashes(buf,0,&return_value->value.str.len,1);
} else {
return_value->value.str.val = buf;
@ -717,7 +699,7 @@ void php3_gzwrite(INTERNAL_FUNCTION_PARAMETERS) {
}
/* strip slashes only if the length wasn't specified explicitly */
if (!arg3 && ZLIB_INI(magic_quotes_runtime)) {
if (!arg3 && PG(magic_quotes_runtime)) {
_php3_stripslashes(arg2->value.str.val,&num_bytes);
}
@ -911,7 +893,7 @@ void php3_gzread(INTERNAL_FUNCTION_PARAMETERS)
return_value->value.str.len = gzread(zp, return_value->value.str.val, len);
return_value->value.str.val[return_value->value.str.len] = 0;
if (ZLIB_INI(magic_quotes_runtime)) {
if (PG(magic_quotes_runtime)) {
return_value->value.str.val = _php3_addslashes(return_value->value.str.val,return_value->value.str.len,&return_value->value.str.len,1);
}
return_value->type = IS_STRING;

Loading…
Cancel
Save