From: Pierre Joye Date: Fri, 2 Jan 2009 00:21:53 +0000 (+0000) Subject: - MFB: restore fix for binary mode on win (regression introduced in 5.2.8) X-Git-Tag: php-5.4.0alpha1~191^2~4680 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f77df832c4a09a00b5635b4af6d4b9d6ed31cf5e;p=php - MFB: restore fix for binary mode on win (regression introduced in 5.2.8) --- diff --git a/ext/zip/lib/zip_close.c b/ext/zip/lib/zip_close.c index 1ebdb7fc71..d9fc6eea43 100644 --- a/ext/zip/lib/zip_close.c +++ b/ext/zip/lib/zip_close.c @@ -636,13 +636,14 @@ _zip_create_temp_output(struct zip *za, FILE **outp) char *temp; int tfd; FILE *tfp; + int len = strlen(za->zn) + 8; - if ((temp=(char *)malloc(strlen(za->zn)+8)) == NULL) { + if ((temp=(char *)malloc(len)) == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); return NULL; } - sprintf(temp, "%s.XXXXXX", za->zn); + snprintf(temp, len, "%s.XXXXXX", za->zn); if ((tfd=mkstemp(temp)) == -1) { _zip_error_set(&za->error, ZIP_ER_TMPOPEN, errno); @@ -657,6 +658,9 @@ _zip_create_temp_output(struct zip *za, FILE **outp) free(temp); return NULL; } +#ifdef PHP_WIN32 + _setmode(_fileno(tfp), _O_BINARY ); +#endif *outp = tfp; return temp;