[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.5] tools/pygrub: Fix TOCTOU race introduced by c/s 63dcc68
In addition, use os.makedirs() which will also create intermediate directories if they don't exist. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> CC: Olaf Hering <olaf@xxxxxxxxx> --- tools/pygrub/src/pygrub | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub index 1ae34a2..37dde32 100644 --- a/tools/pygrub/src/pygrub +++ b/tools/pygrub/src/pygrub @@ -13,7 +13,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # -import os, sys, string, struct, tempfile, re, traceback, stat +import os, sys, string, struct, tempfile, re, traceback, stat, errno import copy import logging import platform @@ -846,8 +846,14 @@ if __name__ == "__main__": if debug: logging.basicConfig(level=logging.DEBUG) - if not os.path.isdir(output_directory): - os.mkdir(output_directory, 0700) + + try: + os.makedirs(output_directory, 0700) + except OSError,e: + if (e.errno == errno.EEXIST) and os.path.isdir(output_directory): + pass + else: + raise if output is None or output == "-": fd = sys.stdout.fileno() -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |