Patrick Georgi ([email protected]) just uploaded a new patch set to 
gerrit, which you can find at http://review.coreboot.org/408

-gerrit

commit 82585042cc979c553aee4d9e88665b4b401d342f
Author: Patrick Georgi <[email protected]>
Date:   Sat Nov 5 14:39:56 2011 +0100

    kconfig: Use more collision resistant temporary filenames
    
    kconfig creates reasonably safe filenames for its temporary files
    except for two of them.
    
    Change-Id: I6861f55ae2a5311e3fb7919333ce9af1e39ce78b
    Signed-off-by: Patrick Georgi <[email protected]>
---
 util/kconfig/confdata.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/util/kconfig/confdata.c b/util/kconfig/confdata.c
index 946b8a9..79e0b35 100644
--- a/util/kconfig/confdata.c
+++ b/util/kconfig/confdata.c
@@ -682,6 +682,7 @@ int conf_write_autoconf(void)
        FILE *out, *out_h;
        time_t now;
        int i, l;
+       char tmpname[128], tmpname_h[128];
 
        sym_clear_all_valid();
 
@@ -692,11 +693,13 @@ int conf_write_autoconf(void)
                return 1;
 #endif
 
-       out = fopen(".tmpconfig", "w");
+       sprintf(tmpname, ".tmpconfig.%d", (int)getpid());
+       out = fopen(tmpname, "w");
        if (!out)
                return 1;
 
-       out_h = fopen(".tmpconfig.h", "w");
+       sprintf(tmpname_h, ".tmpconfig.h.%d", (int)getpid());
+       out_h = fopen(tmpname_h, "w");
        if (!out_h) {
                fclose(out);
                return 1;
@@ -791,7 +794,7 @@ int conf_write_autoconf(void)
        if (!name)
                name = "include/linux/autoconf.h";
        UNLINK_IF_NECESSARY(name);
-       if (rename(".tmpconfig.h", name))
+       if (rename(tmpname_h, name))
                return 1;
        name = getenv("KCONFIG_AUTOCONFIG");
        if (!name)
@@ -801,7 +804,7 @@ int conf_write_autoconf(void)
         * and this marks the successful completion of the previous steps.
         */
        UNLINK_IF_NECESSARY(name);
-       if (rename(".tmpconfig", name))
+       if (rename(tmpname, name))
                return 1;
 
        return 0;

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to