From b9b500f456bff123e0efc24f561183b937b66042 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Tue, 2 Dec 2008 12:26:17 +0000 Subject: 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 Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3789 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/options/build_opt_tbl.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'util/options') 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 #include #include +#include #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"); -- cgit v1.2.3