summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2008-12-02 12:26:17 +0000
committerStefan Reinauer <stepan@openbios.org>2008-12-02 12:26:17 +0000
commitb9b500f456bff123e0efc24f561183b937b66042 (patch)
treed063aba5f16ad6ef9c6dad03a8805b0db40ff79f
parent806def8cac0a2871f937e8a8c83ae07bc2996e2b (diff)
build_opt_tbl:
make sure the temporary files are created in the same directory as the target files so they can be rename()d. This fixes a compilation issue on machines with the build directory living on another partition than /tmp. Pretty trivial. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3789 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--util/options/build_opt_tbl.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/util/options/build_opt_tbl.c b/util/options/build_opt_tbl.c
index d9089e7327..4d98f8ecee 100644
--- a/util/options/build_opt_tbl.c
+++ b/util/options/build_opt_tbl.c
@@ -4,6 +4,7 @@
#include <unistd.h>
#include <ctype.h>
#include <errno.h>
+#include <libgen.h>
#include "../../src/include/pc80/mc146818rtc.h"
#include "../../src/include/boot/coreboot_tables.h"
@@ -11,7 +12,8 @@
#define INPUT_LINE_MAX 256
#define MAX_VALUE_BYTE_LENGTH 64
-#define TMPFILE_TEMPLATE "/tmp/build_opt_tbl_XXXXXX"
+#define TMPFILE_LEN 256
+#define TMPFILE_TEMPLATE "/build_opt_tbl_XXXXXX"
static unsigned char cmos_table[4096];
@@ -215,7 +217,7 @@ int main(int argc, char **argv)
char *header=0;
FILE *fp;
int tmpfile;
- char tmpfilename[32];
+ char tmpfilename[TMPFILE_LEN];
struct cmos_option_table *ct;
struct cmos_entries *ce;
struct cmos_enums *c_enums, *c_enums_start;
@@ -485,7 +487,8 @@ int main(int argc, char **argv)
/* See if we want to output a C source file */
if(option) {
- strcpy(tmpfilename, TMPFILE_TEMPLATE);
+ strncpy(tmpfilename, dirname(option), TMPFILE_LEN);
+ strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
tmpfile = mkstemp(tmpfilename);
if(tmpfile == -1) {
perror("Error - Could not create temporary file");
@@ -535,7 +538,8 @@ int main(int argc, char **argv)
struct cmos_option_table *hdr;
struct lb_record *ptr, *end;
- strcpy(tmpfilename, TMPFILE_TEMPLATE);
+ strncpy(tmpfilename, dirname(option), TMPFILE_LEN);
+ strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN);
tmpfile = mkstemp(tmpfilename);
if(tmpfile == -1) {
perror("Error - Could not create temporary file");