comparison utils.c @ 5284:b481b3e3f43d libavcodec

Proper check for mkstemp().
author ramiro
date Wed, 11 Jul 2007 13:57:22 +0000
parents c94c4aa7d25f
children 6661692d34b4
comparison
equal deleted inserted replaced
5283:35e847940db4 5284:b481b3e3f43d
32 #include "opt.h" 32 #include "opt.h"
33 #include "crc.h" 33 #include "crc.h"
34 #include <stdarg.h> 34 #include <stdarg.h>
35 #include <limits.h> 35 #include <limits.h>
36 #include <float.h> 36 #include <float.h>
37 #ifdef __MINGW32__ 37 #if !defined(HAVE_MKSTEMP)
38 #include <fcntl.h> 38 #include <fcntl.h>
39 #endif 39 #endif
40 40
41 const uint8_t ff_reverse[256]={ 41 const uint8_t ff_reverse[256]={
42 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0, 42 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0,
1331 * *prefix can be a character constant; *filename will be allocated internally. 1331 * *prefix can be a character constant; *filename will be allocated internally.
1332 * Returns file descriptor of opened file (or -1 on error) 1332 * Returns file descriptor of opened file (or -1 on error)
1333 * and opened file name in **filename. */ 1333 * and opened file name in **filename. */
1334 int av_tempfile(char *prefix, char **filename) { 1334 int av_tempfile(char *prefix, char **filename) {
1335 int fd=-1; 1335 int fd=-1;
1336 #ifdef __MINGW32__ 1336 #if !defined(HAVE_MKSTEMP)
1337 *filename = tempnam(".", prefix); 1337 *filename = tempnam(".", prefix);
1338 #else 1338 #else
1339 size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */ 1339 size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */
1340 *filename = av_malloc(len); 1340 *filename = av_malloc(len);
1341 #endif 1341 #endif
1342 /* -----common section-----*/ 1342 /* -----common section-----*/
1343 if (*filename == NULL) { 1343 if (*filename == NULL) {
1344 av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n"); 1344 av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n");
1345 return -1; 1345 return -1;
1346 } 1346 }
1347 #ifdef __MINGW32__ 1347 #if !defined(HAVE_MKSTEMP)
1348 fd = open(*filename, _O_RDWR | _O_BINARY | _O_CREAT, 0444); 1348 fd = open(*filename, _O_RDWR | _O_BINARY | _O_CREAT, 0444);
1349 #else 1349 #else
1350 snprintf(*filename, len, "/tmp/%sXXXXXX", prefix); 1350 snprintf(*filename, len, "/tmp/%sXXXXXX", prefix);
1351 fd = mkstemp(*filename); 1351 fd = mkstemp(*filename);
1352 if (fd < 0) { 1352 if (fd < 0) {