diff options
| author | Justus Winter <[email protected]> | 2017-02-16 13:49:27 +0000 | 
|---|---|---|
| committer | Justus Winter <[email protected]> | 2017-02-16 13:49:27 +0000 | 
| commit | 3bdce4aa3ddd4a3f55b24678faf978d61daa8909 (patch) | |
| tree | a6fc133a75d7b0cfd92e3cb597473b4a40809ea3 /lang/python/helpers.c | |
| parent | python: Fix error handling. (diff) | |
| download | gpgme-3bdce4aa3ddd4a3f55b24678faf978d61daa8909.tar.gz gpgme-3bdce4aa3ddd4a3f55b24678faf978d61daa8909.zip | |
python: Fix passphrase callback wrapping.
* lang/python/helpers.c (pyPassphraseCb): Cope with 'passphrase_info'
being NULL.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to '')
| -rw-r--r-- | lang/python/helpers.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/lang/python/helpers.c b/lang/python/helpers.c index 576767ca..947819d2 100644 --- a/lang/python/helpers.c +++ b/lang/python/helpers.c @@ -377,7 +377,21 @@ static gpgme_error_t pyPassphraseCb(void *hook,      goto leave;    } -  PyTuple_SetItem(args, 1, PyBytes_FromString(passphrase_info)); +  if (passphrase_info == NULL) +    { +      Py_INCREF(Py_None); +      PyTuple_SetItem(args, 1, Py_None); +    } +  else +    PyTuple_SetItem(args, 1, PyUnicode_DecodeUTF8(passphrase_info, +                                                  strlen (passphrase_info), +                                                  "strict")); +  if (PyErr_Occurred()) { +    Py_DECREF(args); +    err_status = gpg_error(GPG_ERR_GENERAL); +    goto leave; +  } +    PyTuple_SetItem(args, 2, PyBool_FromLong((long)prev_was_bad));    if (dataarg) {      Py_INCREF(dataarg);		/* Because GetItem doesn't give a ref but SetItem taketh away */ | 
