summaryrefslogtreecommitdiff
path: root/sapi/phpdbg/phpdbg.c
diff options
context:
space:
mode:
authorkrakjoe <joe.watkins@live.co.uk>2014-02-02 14:42:31 +0000
committerkrakjoe <joe.watkins@live.co.uk>2014-02-02 14:42:31 +0000
commit9e84124e2dba2fc652abce076d5d1bbac9ed13bd (patch)
tree5df28667aec6ad4893a1b3fff9e4587c05b6f08d /sapi/phpdbg/phpdbg.c
parent4a96a75c7df1dd88b4f539638c87586c37a0c6c1 (diff)
downloadphp-git-9e84124e2dba2fc652abce076d5d1bbac9ed13bd.tar.gz
better use of tmpnam/mkstemp
Diffstat (limited to 'sapi/phpdbg/phpdbg.c')
-rw-r--r--sapi/phpdbg/phpdbg.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index 7c94ac19dd..9341ad35a5 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -831,7 +831,13 @@ int main(int argc, char **argv) /* {{{ */
zend_bool remote = 0;
int run = 0;
int step = 0;
- char *bp_tmp_file;
+
+#ifdef _WIN32
+ char *bp_tmp_file = NULL;
+#else
+ char bp_tmp_file[] = "/tmp/phpdbg.XXXXXX";
+#endif
+
#ifndef _WIN32
char *address;
int listen[2];
@@ -871,10 +877,23 @@ int main(int argc, char **argv) /* {{{ */
phpdbg_main:
if (!cleaning) {
+
+#ifdef _WIN32
bp_tmp_file = malloc(L_tmpnam);
- tmpnam(bp_tmp_file);
- if (bp_tmp_file == NULL) {
+ if (bp_tmp_file) {
+ if (!tmpnam(bp_tmp_file)) {
+ free(bp_tmp_file);
+ bp_tmp_file = NULL;
+ }
+ }
+#else
+ if (!mkstemp(bp_tmp_file)) {
+ memset(bp_tmp_file, 0, sizeof(bp_tmp_file));
+ }
+#endif
+
+ if (!bp_tmp_file) {
phpdbg_error("Unable to create temporary file");
}
}
@@ -1317,7 +1336,11 @@ phpdbg_out:
free(sapi_name);
}
+#ifdef _WIN32
free(bp_tmp_file);
+#else
+ unlink(bp_tmp_file);
+#endif
return 0;
} /* }}} */