summaryrefslogtreecommitdiffstats
path: root/pydownloadmgr
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2017-10-06 14:47:10 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-10-24 13:42:45 +0000
commit1902990db9c36a8c2f4a57a4389c1a0c74658584 (patch)
tree256c223fa82e16ff540bade4123adce5ec44ebe3 /pydownloadmgr
parent1be4fabdcb00d17f3b4dc2b563125e661692948d (diff)
downloadtalos-skeleton-1902990db9c36a8c2f4a57a4389c1a0c74658584.tar.gz
talos-skeleton-1902990db9c36a8c2f4a57a4389c1a0c74658584.zip
Add basename for file name in download manager
Added getting the basename for the output file name in download manager. This is to prevent any security holes that would let the user out of the FLASH_DOWNLOAD_PATH dir. (e.g. passing a file name of ../etc/shadow) Resolves openbmc/openbmc#1898 Change-Id: Ie33fe56599e86c29da4b2eae8ef070f0866d054c Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'pydownloadmgr')
-rw-r--r--pydownloadmgr/download_manager.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/pydownloadmgr/download_manager.py b/pydownloadmgr/download_manager.py
index 3cc9f28..7ba80ca 100644
--- a/pydownloadmgr/download_manager.py
+++ b/pydownloadmgr/download_manager.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python
+import os
import gobject
import dbus
import dbus.service
@@ -40,7 +41,7 @@ class DownloadManagerObject(dbus.service.Object):
try:
filename = str(filename)
print "Downloading: "+filename+" from "+ip
- outfile = FLASH_DOWNLOAD_PATH+"/"+filename
+ outfile = FLASH_DOWNLOAD_PATH+"/"+os.path.basename(filename)
rc = subprocess.call(
["tftp", "-l", outfile, "-r", filename, "-g", ip])
if (rc == 0):
@@ -58,7 +59,7 @@ class DownloadManagerObject(dbus.service.Object):
try:
filename = str(filename)
print "Downloading: "+filename+" from "+url
- outfile = FLASH_DOWNLOAD_PATH+"/"+filename
+ outfile = FLASH_DOWNLOAD_PATH+"/"+os.path.basename(filename)
subprocess.call(
["tftp", "-l", outfile, "-r", filename, "-g", url])
obj = bus.get_object("org.openbmc.control.Flash", path)
OpenPOWER on IntegriCloud