From: Uwe Hermann Date: Sun, 4 May 2014 21:46:21 +0000 (+0200) Subject: Only load and use PDs of API version 2. X-Git-Tag: libsigrokdecode-0.3.0~6 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff_plain;h=5c0c9cb3a78be20d98f81cff1405bbf2c927384e Only load and use PDs of API version 2. Decoders that implement any other PD API version are per definition not compatible and cannot work with this library version. --- diff --git a/decoder.c b/decoder.c index ff6e7ac..71e9122 100644 --- a/decoder.c +++ b/decoder.c @@ -366,6 +366,17 @@ SRD_API int srd_decoder_load(const char *module_name) } Py_CLEAR(py_basedec); + /* + * Check that thіs decoder has the correct PD API version. + * PDs of different API versions are incompatible and cannot work. + */ + py_long = PyObject_GetAttrString(d->py_dec, "api_version"); + if (PyLong_AsLong(py_long) != 2) { + srd_err("Only PDs of API version 2 are supported."); + goto err_out; + } + Py_CLEAR(py_long); + /* Check for a proper start() method. */ if (!PyObject_HasAttrString(d->py_dec, "start")) { srd_err("Protocol decoder %s has no start() method Decoder "