pass.count = 0;
pass.ret = return_value;
pass.fp = php_stream_fopen_tmpfile();
+ if (pass.fp == NULL) {
+ zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "phar \"%s\" unable to create temporary file", phar_obj->arc.archive->fname);
+ return;
+ }
if (phar_obj->arc.archive->is_persistent && FAILURE == phar_copy_on_write(&(phar_obj->arc.archive) TSRMLS_CC)) {
zval_ptr_dtor(&iteriter);
pass.ret = return_value;
pass.count = 0;
pass.fp = php_stream_fopen_tmpfile();
+ if (pass.fp == NULL) {
+ zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "phar \"%s\": unable to create temporary file", phar_obj->arc.archive->fname);
+ return;
+ }
if (SUCCESS == spl_iterator_apply(obj, (spl_iterator_apply_func_t) phar_build, (void *) &pass TSRMLS_CC)) {
phar_obj->arc.archive->ufp = pass.fp;
zend_get_hash_value, NULL, 0);
phar->fp = php_stream_fopen_tmpfile();
+ if (phar->fp == NULL) {
+ zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "unable to create temporary file");
+ return NULL;
+ }
phar->fname = source->fname;
phar->fname_len = source->fname_len;
phar->is_temporary_alias = source->is_temporary_alias;
entry->is_modified = 1;
entry->fp = php_stream_fopen_tmpfile();
entry->offset = entry->offset_abs = 0;
-
+ if (entry->fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return -1;
+ }
if (entry->metadata_str.len != php_stream_write(entry->fp, entry->metadata_str.c, entry->metadata_str.len)) {
spprintf(error, 0, "phar tar error: unable to write metadata to magic metadata file \"%s\"", entry->filename);
zend_hash_del(&(entry->phar->manifest), entry->filename, entry->filename_len);
entry.filename = estrndup(".phar/alias.txt", sizeof(".phar/alias.txt")-1);
entry.filename_len = sizeof(".phar/alias.txt")-1;
entry.fp = php_stream_fopen_tmpfile();
-
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return -1;
+ }
if (phar->alias_len != (int)php_stream_write(entry.fp, phar->alias, phar->alias_len)) {
if (error) {
spprintf(error, 0, "unable to set alias in tar-based phar \"%s\"", phar->fname);
len = pos - user_stub + 18;
entry.fp = php_stream_fopen_tmpfile();
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
entry.uncompressed_filesize = len + 5;
if ((size_t)len != php_stream_write(entry.fp, user_stub, len)
} else {
/* Either this is a brand new phar (add the stub), or the default stub is required (overwrite the stub) */
entry.fp = php_stream_fopen_tmpfile();
-
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
if (sizeof(newstub)-1 != php_stream_write(entry.fp, newstub, sizeof(newstub)-1)) {
php_stream_close(entry.fp);
if (error) {
}
newfile = php_stream_fopen_tmpfile();
-
if (!newfile) {
if (error) {
spprintf(error, 0, "unable to create temporary file");
entry.filename = ".phar/signature.bin";
entry.filename_len = sizeof(".phar/signature.bin")-1;
entry.fp = php_stream_fopen_tmpfile();
-
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
#ifdef WORDS_BIGENDIAN
# define PHAR_SET_32(var, buffer) \
*(php_uint32 *)(var) = (((((unsigned char*)&(buffer))[3]) << 24) \
dest->offset = 0;
dest->is_modified = 1;
dest->fp = php_stream_fopen_tmpfile();
+ if (dest->fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
phar_seek_efp(source, 0, SEEK_SET, 0, 1 TSRMLS_CC);
link = phar_get_link_source(source TSRMLS_CC);
}
fp = php_stream_fopen_tmpfile();
+ if (fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return FAILURE;
+ }
phar_seek_efp(entry, 0, SEEK_SET, 0, 1 TSRMLS_CC);
link = phar_get_link_source(entry TSRMLS_CC);
off_t tell, st;
newfile = php_stream_fopen_tmpfile();
+ if (newfile == NULL) {
+ spprintf(pass->error, 0, "phar error: unable to create temporary file for the signature file");
+ return FAILURE;
+ }
st = tell = php_stream_tell(pass->filefp);
/* copy the local files, central directory, and the zip comment to generate the hash */
php_stream_seek(pass->filefp, 0, SEEK_SET);
/* set alias */
if (!phar->is_temporary_alias && phar->alias_len) {
entry.fp = php_stream_fopen_tmpfile();
-
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
if (phar->alias_len != (int)php_stream_write(entry.fp, phar->alias, phar->alias_len)) {
if (error) {
spprintf(error, 0, "unable to set alias in zip-based phar \"%s\"", phar->fname);
len = pos - user_stub + 18;
entry.fp = php_stream_fopen_tmpfile();
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
entry.uncompressed_filesize = len + 5;
if ((size_t)len != php_stream_write(entry.fp, user_stub, len)
} else {
/* Either this is a brand new phar (add the stub), or the default stub is required (overwrite the stub) */
entry.fp = php_stream_fopen_tmpfile();
-
+ if (entry.fp == NULL) {
+ spprintf(error, 0, "phar error: unable to create temporary file");
+ return EOF;
+ }
if (sizeof(newstub)-1 != php_stream_write(entry.fp, newstub, sizeof(newstub)-1)) {
php_stream_close(entry.fp);
if (error) {