diff options
Diffstat (limited to 'ext/mime_magic/mime_magic.c')
| -rw-r--r-- | ext/mime_magic/mime_magic.c | 79 | 
1 files changed, 35 insertions, 44 deletions
diff --git a/ext/mime_magic/mime_magic.c b/ext/mime_magic/mime_magic.c index 595fe6b17a..4df4411f12 100644 --- a/ext/mime_magic/mime_magic.c +++ b/ext/mime_magic/mime_magic.c @@ -168,8 +168,6 @@  #define PHP_MIME_MAGIC_FILE_PATH PHP_PREFIX "\\magic.mime"  #endif -#define MODNAME "mime_magic" -  static int apprentice(void);  static int ascmagic(unsigned char *, int);  static int is_tar(unsigned char *, int); @@ -313,12 +311,12 @@ PHP_FUNCTION(mime_content_type)  	}  	if (conf->magic == (struct magic *)-1) { -		php_error(E_ERROR, MODNAME " could not be initialized, magic file %s is not avaliable",  conf->magicfile); +		php_error_docref(NULL TSRMLS_CC, E_ERROR, "mime_magic could not be initialized, magic file %s is not avaliable", conf->magicfile);  		RETURN_FALSE;  	}   	if(!conf->magic) { -		php_error(E_WARNING, MODNAME " not initialized"); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "mime_magic not initialized");  		RETURN_FALSE;  	} @@ -428,10 +426,12 @@ static unsigned long signextend(struct magic *m, unsigned long v)  			break;  		case STRING:  			break; -		default: -			php_error(E_WARNING, -						 MODNAME ": can't happen: m->type=%d", m->type); +		default:  +		 { +			TSRMLS_FETCH(); +			php_error_docref(NULL TSRMLS_CC, E_WARNING, ": can't happen: m->type=%d", m->type);  			return -1; +		 }  		}      return v;  } @@ -444,6 +444,7 @@ static int parse(char *l, int lineno)      struct magic *m;      char *t, *s;      magic_server_config_rec *conf = &mime_global; +    TSRMLS_FETCH();      /* allocate magic structure entry */      m = (struct magic *) calloc(1, sizeof(struct magic)); @@ -476,8 +477,7 @@ static int parse(char *l, int lineno)      /* get offset, then skip over it */      m->offset = (int) strtol(l, &t, 0);      if (l == t) { -		php_error(E_WARNING, -					 MODNAME ": (line %d) offset `%s' invalid", lineno, l); +	php_error_docref(NULL TSRMLS_CC, E_WARNING, ": (line %d) offset `%s' invalid", lineno, l);      }      l = t; @@ -499,8 +499,7 @@ static int parse(char *l, int lineno)  				m->in.type = BYTE;  				break;  			default: -				php_error(E_WARNING, -							 MODNAME ": indirect offset type %c invalid", *l); +				php_error_docref(NULL TSRMLS_CC, E_WARNING, ": indirect offset type %c invalid", *l);  				break;  			}  			l++; @@ -516,8 +515,7 @@ static int parse(char *l, int lineno)  		else  			t = l;  		if (*t++ != ')') { -			php_error(E_WARNING, -						 MODNAME ": missing ')' in indirect offset"); +			php_error_docref(NULL TSRMLS_CC, E_WARNING, ": missing ')' in indirect offset");  		}  		l = t;      } @@ -590,8 +588,7 @@ static int parse(char *l, int lineno)  		l += NLEDATE;      }      else { -		php_error(E_WARNING, -					 MODNAME ": type %s invalid", l); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, ": type %s invalid", l);  		return -1;      }      /* New-style anding: "0 byte&0x80 =0x80 dynamically linked" */ @@ -690,8 +687,8 @@ static char *getstr(register char *s, register char *p,  		if (isspace((unsigned char) c))  			break;  		if (p >= pmax) { -			php_error(E_WARNING, -						 MODNAME ": string too long: %s", origs); +			TSRMLS_FETCH(); +			php_error_docref(NULL TSRMLS_CC, E_WARNING, "string too long: %s", origs);  			break;  		}  		if (c == '\\') { @@ -849,8 +846,7 @@ static int magic_rsl_add(char *str)     /* make sure we have a list to put it in */      if (!req_dat) { -		php_error(E_WARNING, -					  MODNAME ": request config should not be NULL"); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "request config should not be NULL");  		if (!(req_dat = magic_set_config())) {  			/* failure */  			return -1; @@ -986,8 +982,7 @@ static int magic_process(char *filename TSRMLS_DC)      if (stream == NULL) {  		/* We can't open it, but we were able to stat it. */ -		php_error(E_WARNING, -					  MODNAME ": can't read `%s'", filename); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "can't read `%s'", filename);  		/* let some other handler decide what the problem is */  		return MIME_MAGIC_DECLINED;      } @@ -996,8 +991,7 @@ static int magic_process(char *filename TSRMLS_DC)       * try looking at the first HOWMANY bytes       */      if ((nbytes = php_stream_read(stream, (char *) buf, sizeof(buf) - 1)) == -1) { -		php_error(E_WARNING, -					  MODNAME ": read failed: %s", filename); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "read failed: %s", filename);  		return MIME_MAGIC_ERROR;      } @@ -1092,8 +1086,7 @@ static int fsmagic(char *filename TSRMLS_DC)  		/* We used stat(), the only possible reason for this is that the  		 * symlink is broken.  		 */ -		php_error(E_WARNING, -					  MODNAME ": broken symlink (%s)", filename); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "broken symlink (%s)", filename);  		return MIME_MAGIC_ERROR;  #endif  #ifdef    S_IFSOCK @@ -1108,8 +1101,7 @@ static int fsmagic(char *filename TSRMLS_DC)  	case 0:  		break;      default: -		php_error(E_WARNING, -					  MODNAME ": invalid mode 0%o.", (unsigned int)stat_ssb.sb.st_mode); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid mode 0%o.", (unsigned int)stat_ssb.sb.st_mode);  		return MIME_MAGIC_ERROR;      } @@ -1463,11 +1455,12 @@ static int mcheck(union VALUETYPE *p, struct magic *m)      register unsigned long l = m->value.l;      register unsigned long v;      int matched; +    TSRMLS_FETCH();      if ((m->value.s[0] == 'x') && (m->value.s[1] == '\0')) { -		php_error(E_WARNING, -					  MODNAME ": BOINK"); -		return 1; +     +	php_error_docref(NULL TSRMLS_CC, E_WARNING, "BOINK"); +	return 1;      }      switch (m->type) { @@ -1510,8 +1503,7 @@ static int mcheck(union VALUETYPE *p, struct magic *m)  		break;      default:  		/*  bogosity, pretend that it just wasn't a match */ -		php_error(E_WARNING, -					  MODNAME ": invalid type %d in mcheck().", m->type); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid type %d in mcheck().", m->type);  		return 0;      } @@ -1559,9 +1551,7 @@ static int mcheck(union VALUETYPE *p, struct magic *m)      default:  		/* bogosity, pretend it didn't match */  		matched = 0; -		php_error(E_WARNING, -					  MODNAME ": mcheck: can't happen: invalid relation %d.", -					  m->reln); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "mcheck: can't happen: invalid relation %d.", m->reln);  		break;      } @@ -1643,10 +1633,11 @@ static void mprint(union VALUETYPE *p, struct magic *m)  		(void) magic_rsl_printf(m->desc, pp);  		return;      default: -		php_error(E_WARNING, -					  MODNAME ": invalid m->type (%d) in mprint().", -					  m->type); +    	{ +    		TSRMLS_FETCH(); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid m->type (%d) in mprint().", m->type);  		return; +	}      }      v = signextend(m, v) & m->mask; @@ -1689,9 +1680,11 @@ static int mconvert(union VALUETYPE *p, struct magic *m)  			((p->hl[3] << 24) | (p->hl[2] << 16) | (p->hl[1] << 8) | (p->hl[0]));  		return 1;      default: -		php_error(E_WARNING, -					  MODNAME ": invalid type %d in mconvert().", m->type); +    	{ +    		TSRMLS_FETCH(); +		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid type %d in mconvert().", m->type);  		return 0; +	}      }  } @@ -1765,8 +1758,7 @@ static int magic_rsl_get(char **content_type, char **content_encoding)  				else {  					/* should not be possible */  					/* abandon malfunctioning module */ -					php_error(E_WARNING, -								  MODNAME ": bad state %d (ws)", state); +					php_error_docref(NULL TSRMLS_CC, E_WARNING, ": bad state %d (ws)", state);  					return MIME_MAGIC_DECLINED;  				}  				/* NOTREACHED */ @@ -1809,8 +1801,7 @@ static int magic_rsl_get(char **content_type, char **content_encoding)  				else {  					/* should not be possible */  					/* abandon malfunctioning module */ -					php_error(E_WARNING, -								  MODNAME ": bad state %d (ns)", state); +					php_error_docref(NULL TSRMLS_CC, E_WARNING, "bad state %d (ns)", state);  					return MIME_MAGIC_DECLINED;  				}  				/* NOTREACHED */  | 
