Allow a NULL header in PEM_write{,_bio}()
authortb <tb@openbsd.org>
Sun, 31 Jul 2022 09:48:27 +0000 (09:48 +0000)
committertb <tb@openbsd.org>
Sun, 31 Jul 2022 09:48:27 +0000 (09:48 +0000)
When PEM_write{,_bio}() were documented by Rich Salz and Richard Levitte,
it was incorrectly stated that the header argument is allowed to be NULL.
This was never true.  Instead of fixing the documentation, it was decided
that the API needs a fix, so pull in a variant of OpenSSL 3b9082c8.

ok jsing

lib/libcrypto/pem/pem_lib.c

index 7b7f810..7076023 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: pem_lib.c,v 1.50 2021/12/12 21:30:14 tb Exp $ */
+/* $OpenBSD: pem_lib.c,v 1.51 2022/07/31 09:48:27 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -608,8 +608,7 @@ PEM_write_bio(BIO *bp, const char *name, const char *header,
            (BIO_write(bp, "-----\n", 6) != 6))
                goto err;
 
-       i = strlen(header);
-       if (i > 0) {
+       if (header != NULL && (i = strlen(header)) > 0) {
                if ((BIO_write(bp, header, i) != i) ||
                    (BIO_write(bp, "\n", 1) != 1))
                        goto err;