Oops, incorrect hex conversion spotted by claudio. While here try to
authorderaadt <deraadt@openbsd.org>
Tue, 2 Apr 2024 12:22:38 +0000 (12:22 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 2 Apr 2024 12:22:38 +0000 (12:22 +0000)
improve how it reads a bit better.  Surprising the regression tests
didn't spot this error, maybe it fails to roundtrip the values.

usr.bin/ssh/ssh-pkcs11.c

index 69bff22..e6c53f0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-pkcs11.c,v 1.61 2024/04/02 09:48:24 claudio Exp $ */
+/* $OpenBSD: ssh-pkcs11.c,v 1.62 2024/04/02 12:22:38 deraadt Exp $ */
 /*
  * Copyright (c) 2010 Markus Friedl.  All rights reserved.
  * Copyright (c) 2014 Pedro Martelletto. All rights reserved.
@@ -1364,14 +1364,13 @@ static int
 h2i(char c)
 {
        if (c >= '0' && c <= '9')
-               c -= '0';
+               return c - '0';
        else if (c >= 'a' && c <= 'f')
-               c -= 'a';
+               return c - 'a' + 10;
        else if (c >= 'A' && c <= 'F')
-               c -= 'A';
+               return c - 'A' + 10;
        else
                return -1;
-       return c;
 }
 
 static int