diff --git a/file-5.25-avoid-double-evaluation-in-python-bindings.dif b/file-5.25-avoid-double-evaluation-in-python-bindings.dif new file mode 100644 index 0000000..9b9ef35 --- /dev/null +++ b/file-5.25-avoid-double-evaluation-in-python-bindings.dif @@ -0,0 +1,68 @@ +From f0adf3e6811aafde00dba8ba236609869a973769 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Thu, 29 Oct 2015 19:23:42 +0000 +Subject: [PATCH] PR/489: Avoid evaluating things twice. + +--- + python/magic.py | 35 +++++++++++++++++++---------------- + 1 file changed, 19 insertions(+), 16 deletions(-) + +diff --git a/python/magic.py b/python/magic.py +index a17e8da..2c1c012 100644 +--- a/python/magic.py ++++ b/python/magic.py +@@ -118,14 +118,15 @@ def file(self, filename): + as a filename or None if an error occurred and the MAGIC_ERROR flag + is set. A call to errno() will return the numeric error code. + """ +- try: # attempt python3 approach first +- if isinstance(filename, bytes): +- bi = filename +- else: +- bi = bytes(filename, 'utf-8') +- return str(_file(self._magic_t, bi), 'utf-8') +- except: +- return _file(self._magic_t, filename.encode('utf-8')) ++ if isinstance(filename, bytes): ++ bi = filename ++ else: ++ bi = bytes(filename, 'utf-8') ++ r = _file(self._magic_t, bi) ++ if isinstance(r, str): ++ return r ++ else: ++ return str(r, 'utf-8') + + def descriptor(self, fd): + """ +@@ -139,20 +140,22 @@ def buffer(self, buf): + as a buffer or None if an error occurred and the MAGIC_ERROR flag + is set. A call to errno() will return the numeric error code. + """ +- try: # attempt python3 approach first +- return str(_buffer(self._magic_t, buf, len(buf)), 'utf-8') +- except: +- return _buffer(self._magic_t, buf, len(buf)) ++ r = _buffer(self._magic_t, buf, len(buf)) ++ if isinstance(r, str): ++ return r ++ else: ++ return str(r, 'utf-8') + + def error(self): + """ + Returns a textual explanation of the last error or None + if there was no error. + """ +- try: # attempt python3 approach first +- return str(_error(self._magic_t), 'utf-8') +- except: +- return _error(self._magic_t) ++ e = _error(self._magic_t) ++ if isinstance(e, str): ++ return e ++ else: ++ return str(e, 'utf-8') + + def setflags(self, flags): + """ diff --git a/file.changes b/file.changes index 09194f7..ba8fc70 100644 --- a/file.changes +++ b/file.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jan 21 11:32:14 UTC 2016 - dmueller@suse.com + +- add file-5.25-avoid-double-evaluation-in-python-bindings.dif (bsc#949905) + ------------------------------------------------------------------- Sun Oct 4 15:55:51 UTC 2015 - astieger@suse.com diff --git a/file.spec b/file.spec index d12bc29..c2d1ddb 100644 --- a/file.spec +++ b/file.spec @@ -1,7 +1,7 @@ # # spec file for package file # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -62,6 +62,7 @@ Patch34: file-5.23-endian.patch Patch35: file-5.24-nitpick.dif Patch36: file-5.15-clear-invalid.patch Patch37: file-secure_getenv.patch +Patch38: file-5.25-avoid-double-evaluation-in-python-bindings.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _miscdir %{_datadir}/misc @@ -127,6 +128,7 @@ to develop applications that require the magic "file" interface. %patch35 -p0 -b .nitpick %patch36 -p1 -b .clear %patch37 -p1 -b .getenv +%patch38 -p1 -b .pythondouble %patch -b .0 test -s src/magic.h.in || cp -p src/magic.h src/magic.h.in diff --git a/python-magic.changes b/python-magic.changes index 1958d1e..a37083e 100644 --- a/python-magic.changes +++ b/python-magic.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jan 21 11:32:14 UTC 2016 - dmueller@suse.com + +- add file-5.25-avoid-double-evaluation-in-python-bindings.dif (bsc#949905) + ------------------------------------------------------------------- Sun Oct 4 15:55:51 UTC 2015 - astieger@suse.com diff --git a/python-magic.spec b/python-magic.spec index fae3cc8..6ca8651 100644 --- a/python-magic.spec +++ b/python-magic.spec @@ -1,7 +1,7 @@ # # spec file for package python-magic # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed