Browse Source

trunk->b1.0 [209] [210]: conflict between sandbox and user error handler

git-svn-id: svn://svn.lighttpd.net/xcache/branches/1.0@211 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
1.0
Xuefer 15 years ago
parent
commit
e757f00d47
  1. 11
      utils.c
  2. 1
      utils.h

11
utils.c

@ -334,6 +334,11 @@ xc_sandbox_t *xc_sandbox_init(xc_sandbox_t *sandbox, char *filename TSRMLS_DC) /
sandbox->filename = filename;
#ifdef E_STRICT
sandbox->orig_user_error_handler_error_reporting = EG(user_error_handler_error_reporting);
EG(user_error_handler_error_reporting) &= ~E_STRICT;
#endif
return sandbox;
}
/* }}} */
@ -356,7 +361,7 @@ static void xc_sandbox_install(xc_sandbox_t *sandbox TSRMLS_DC) /* {{{ */
b = TG(class_table).pListHead;
/* install class */
while (b != NULL) {
xc_install_class(sandbox->filename, (xc_cest_t*)b->pData,
xc_install_class(sandbox->filename, (xc_cest_t*) b->pData,
BUCKET_KEY_TYPE(b), BUCKET_KEY(b), b->nKeyLength TSRMLS_CC);
b = b->pListNext;
}
@ -396,6 +401,10 @@ void xc_sandbox_free(xc_sandbox_t *sandbox, int install TSRMLS_DC) /* {{{ */
memcpy(&EG(included_files), &OG(included_files), sizeof(EG(included_files)));
memcpy(&CG(open_files), &OG(open_files), sizeof(CG(open_files)));
#ifdef E_STRICT
EG(user_error_handler_error_reporting) = sandbox->orig_user_error_handler_error_reporting;
#endif
if (sandbox->alloc) {
efree(sandbox);
}

1
utils.h

@ -31,6 +31,7 @@ ZESW(xc_cest_t *, void) xc_install_class(char *filename, xc_cest_t *cest, zend_u
/* sandbox */
typedef struct {
int alloc;
int orig_user_error_handler_error_reporting;
char *filename;
HashTable orig_included_files;

Loading…
Cancel
Save