]> granicus.if.org Git - php/commitdiff
- MFB: restore fix for binary mode on win (regression introduced in 5.2.8)
authorPierre Joye <pajoye@php.net>
Fri, 2 Jan 2009 00:04:33 +0000 (00:04 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 2 Jan 2009 00:04:33 +0000 (00:04 +0000)
ext/zip/lib/zip_close.c

index 1ebdb7fc71b6cd3c7906f0e6c735dea2bcb58b3d..d9fc6eea4394d8ad7463c7fb482786b2305b34e1 100644 (file)
@@ -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;