From patchwork Mon Jun 25 08:47:36 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel,1/1] hig.py: use module tempfile to create temp file Date: Mon, 25 Jun 2012 08:47:36 -0000 From: Kang Kai X-Patchwork-Id: 30617 Message-Id: To: Cc: Zhenfeng.Zhao@windriver.com I am sorry that use os.tmpname which casue a security warning. Follow Darren's suggestion to use tempfile.NamedTemporaryFile instead. Signed-off-by: Kang Kai --- bitbake/lib/bb/ui/crumbs/hig.py | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py index b586b6c..2001ff4 100644 --- a/bitbake/lib/bb/ui/crumbs/hig.py +++ b/bitbake/lib/bb/ui/crumbs/hig.py @@ -28,6 +28,7 @@ import os import re import shlex import subprocess +import tempfile from bb.ui.crumbs.hobcolor import HobColors from bb.ui.crumbs.hobwidget import hcc, hic, HobViewTable, HobInfoButton, HobButton, HobAltButton, HobIconChecker from bb.ui.crumbs.progressbar import HobProgressBar @@ -869,21 +870,16 @@ class DeployImageDialog (CrumbsDialog): if combo_item and combo_item != self.__dummy_usb__ and self.image_path: cmdline = bb.ui.crumbs.utils.which_terminal() if cmdline: - tmpname = os.tmpnam() + tmpfile = tempfile.NamedTemporaryFile() cmdline += "\"sudo dd if=" + self.image_path + \ - " of=" + combo_item + "; echo $? > " + tmpname + "\"" + " of=" + combo_item + "; echo $? > " + tmpfile.name + "\"" subprocess.call(shlex.split(cmdline)) - # if file tmpname not exists, that means there is something wrong with xterm - # user can get the error message from xterm so no more warning need. - if os.path.exists(tmpname): - tmpfile = open(tmpname) - if int(tmpfile.readline().strip()) == 0: - lbl = "Deploy image successfully." - else: - lbl = "Failed to deploy image.\nPlease check image %s exists and USB device %s is writable." % (self.image_path, combo_item) - tmpfile.close() - os.remove(tmpname) + if int(tmpfile.readline().strip()) == 0: + lbl = "Deploy image successfully." + else: + lbl = "Failed to deploy image.\nPlease check image %s exists and USB device %s is writable." % (self.image_path, combo_item) + tmpfile.close() else: if not self.image_path: lbl = "No selection made.\nYou have not selected an image to deploy."