tag 226462 +patch thanks Hi,
there was a small error in my fix: of course, (posix.WEXITSTATUS(e) >> 8) is bogus and needs to be just posix.WEXITSTATUS(e). Anyway, here's the patch. You might want to de-NMU the changelog entry. ;-) diff -u gnupginterface-0.3.2/debian/changelog gnupginterface-0.3.2/debian/changelog --- gnupginterface-0.3.2/debian/changelog +++ gnupginterface-0.3.2/debian/changelog @@ -1,0 +1,7 @@ +gnupginterface (0.3.2-4.1) unstable; urgency=low + + * NMU. + * Fix error reporting if/when gnupg dies. (Closes: #226462) + + -- Matthias Urlichs <[EMAIL PROTECTED]> Fri, 18 Mar 2005 09:47:45 +0100 + only in patch2: unchanged: --- gnupginterface-0.3.2.orig/GnuPGInterface.py +++ gnupginterface-0.3.2/GnuPGInterface.py @@ -223,6 +223,7 @@ import os import sys import fcntl +import posix __author__ = "Frank J. Tobin, [EMAIL PROTECTED]" __version__ = "0.3.2" @@ -635,8 +636,17 @@ Will raise an IOError if the process exits non-zero.""" e = os.waitpid(self.pid, 0)[1] - if e != 0: - raise IOError, "GnuPG exited non-zero, with code %d" % (e << 8) + + if posix.WIFSIGNALED(e): + raise IOError, "GnuPG died with signal %d" % posix.WTERMSIG(e) + elif posix.WIFEXITED(e): + if posix.WEXITSTATUS(e) != 0: + raise IOError, "GnuPG exited non-zero, with code %d" \ + % posix.WEXITSTATUS(e) + else: + raise IOError, "GnuPG exited with unknown status %d" % e + + def _run_doctests(): import doctest, GnuPGInterface -- Matthias Urlichs | {M:U} IT Design @ m-u-it.de | [EMAIL PROTECTED]
signature.asc
Description: Digital signature