[pypy-commit] pypy py3k: path of least resistance: workaround dlerror returning junk messages under
pjenvey
noreply at buildbot.pypy.org
Fri Jul 26 02:03:23 CEST 2013
Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r65677:191650bed89e
Date: 2013-07-25 17:02 -0700
http://bitbucket.org/pypy/pypy/changeset/191650bed89e/
Log: path of least resistance: workaround dlerror returning junk messages
under ll2ctypes on the buildbot
diff --git a/pypy/module/_rawffi/interp_rawffi.py b/pypy/module/_rawffi/interp_rawffi.py
--- a/pypy/module/_rawffi/interp_rawffi.py
+++ b/pypy/module/_rawffi/interp_rawffi.py
@@ -5,6 +5,7 @@
from pypy.objspace.std.stringtype import getbytevalue
from rpython.rlib.clibffi import *
+from rpython.rlib.objectmodel import we_are_translated
from rpython.rtyper.lltypesystem import lltype, rffi
from rpython.rtyper.tool import rffi_platform
from rpython.rlib.unroll import unrolling_iterable
@@ -142,7 +143,13 @@
space.wrap("not supported by libffi"))
def wrap_dlopenerror(space, e, filename):
- msg = e.msg if e.msg else 'unspecified error'
+ if e.msg:
+ # dlerror can return garbage messages under ll2ctypes (not
+ # we_are_translated()), so repr it to avoid potential problems
+ # converting to unicode later
+ msg = e.msg if we_are_translated() else repr(e.msg)
+ else:
+ msg = 'unspecified error'
return operationerrfmt(space.w_OSError, 'Cannot load library %s: %s',
filename, msg)
More information about the pypy-commit
mailing list