free(temp);
return -1;
}
-
- if (za->zp) {
- fclose(za->zp);
- za->zp = NULL;
- reopen_on_error = 1;
+
+ if (za->zp) {
+ fclose(za->zp);
+ za->zp = NULL;
+ reopen_on_error = 1;
}
if (_zip_rename(temp, za->zn) != 0) {
- _zip_error_set(&za->error, ZIP_ER_RENAME, errno);
- remove(temp);
- free(temp);
- if (reopen_on_error) {
- /* ignore errors, since we're already in an error case */
- za->zp = fopen(za->zn, "rb");
- }
- return -1;
+ _zip_error_set(&za->error, ZIP_ER_RENAME, errno);
+ remove(temp);
+ free(temp);
+ if (reopen_on_error) {
+ /* ignore errors, since we're already in an error case */
+ za->zp = fopen(za->zn, "rb");
}
+ return -1;
+ }
#ifndef PHP_WIN32
mask = umask(0);
umask(mask);
ZIP_EXTERN(int)
zip_delete(struct zip *za, zip_uint64_t idx)
{
- if (idx < 0 || idx >= za->nentry) {
+ if (idx >= za->nentry) {
_zip_error_set(&za->error, ZIP_ER_INVAL, 0);
return -1;
}
static time_t
_zip_d2u_time(int dtime, int ddate)
{
- struct tm tm = {0};
+ struct tm tm;
memset(&tm, 0, sizeof(tm));
#include "zipint.h"
-
\f
ZIP_EXTERN(struct zip_file *)
_zip_error_set_from_source(&zf->error, zf->src);
return -1;
}
-
- /* XXX the following left from the previous PHP port, let's see how to use it now */
- /*zf->zstr->next_out = (Bytef *)outbuf;
- zf->zstr->avail_out = toread;
- out_before = zf->zstr->total_out;*/
-
- /* endless loop until something has been accomplished */
- /*for (;;) {
- ret = inflate(zf->zstr, Z_SYNC_FLUSH);*/
return n;
}
if (za->cdir->comment_len != TORRENT_SIG_LEN+8
|| strncmp(za->cdir->comment, TORRENT_SIG, TORRENT_SIG_LEN) != 0)
return;
-
+
memcpy(buf, za->cdir->comment+TORRENT_SIG_LEN, 8);
buf[8] = '\0';
errno = 0;
crc_should = strtoul(buf, &end, 16);
if ((crc_should == UINT_MAX && errno != 0) || (end && *end))
return;
-
+
if (_zip_filerange_crc(za->zp, za->cdir->offset, za->cdir->size,
&crc_got, NULL) < 0)
- return;
+ return;
if (crc_got == crc_should)
za->flags |= ZIP_AFL_TORRENT;