[U-Boot] [PATCH] binman: ensure temp filenames don't collide

Stephen Warren swarren at wwwdotorg.org
Mon Jul 16 22:51:48 UTC 2018


From: Stephen Warren <swarren at nvidia.com>

The U-Boot Makefile can invoke binman multiple times in parallel. This
is problematic because binman uses a static hard-coded temporary file
name. If two instances of binman use that filename at the same time, one
writing one reading, they may silently read the wrong content or actively
detect missing signatures and error out the build process. Fix this by
using a PID-specific filename instead.

Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
 tools/binman/control.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/binman/control.py b/tools/binman/control.py
index a40b300fdacb..515999278949 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -121,7 +121,7 @@ def Binman(options, args):
             # output into a file in our output directly. Then scan it for use
             # in binman.
             dtb_fname = fdt_util.EnsureCompiled(dtb_fname)
-            fname = tools.GetOutputFilename('u-boot-out.dtb')
+            fname = tools.GetOutputFilename('u-boot-out.dtb') + str(os.getpid())
             with open(dtb_fname) as infd:
                 with open(fname, 'wb') as outfd:
                     outfd.write(infd.read())
-- 
2.18.0



More information about the U-Boot mailing list