summaryrefslogtreecommitdiff
path: root/src/sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sign.c')
-rw-r--r--src/sign.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sign.c b/src/sign.c
index 31081aea..31db9bde 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -251,7 +251,16 @@ parse_sig_created (char *args, gpgme_new_signature_t *sigp,
}
args = tail;
+ /* strtol has been used wrongly here. We can't change this anymore
+ * but we now take care of the 0x1f class which would otherwise let
+ * us run into an error. */
sig->sig_class = strtol (args, &tail, 0);
+ if (!errno && args != tail && sig->sig_class == 1
+ && (*tail == 'F' || *tail == 'f'))
+ {
+ tail++;
+ sig->sig_class = 131; /* Arbitrary unused value in rfc4880. */
+ }
sig->class = sig->sig_class;
sig->_obsolete_class = sig->sig_class;
if (errno || args == tail || *tail != ' ')