tree 5288d99040cf5e1a4deddc52277e6a15345c2d8f
parent 955ef7991e41ac6c0ea5114b4b9abb98cc5fd614
author David Benjamin <davidben@google.com> 1655137987 -0400
committer Boringssl LUCI CQ <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com> 1655317012 +0000

Define STACK_OF(OPENSSL_STRING) more straight-forwardly.

This results in one change, which is the comparison function goes from:

  typedef char *OPENSSL_STRING;
  static int sk_strcmp(const OPENSSL_STRING *a,
                       const OPENSSL_STRING *b);

which is:

  static int sk_strcmp(char *const *a, char *const *b)

into:

  static int sk_strcmp(const char **a, const char **b)

Neither is correct (both consts should be there), but switching the
defintion is necessary to attach the 'const' to 'char' itself. Otherwise
it wouldn't see through the typedef. Fixing the rest of the calling
convention will finish the job. Plan there is, when
I00d13c949a535c0d60873fe4ba2e5604bb585cca lands, I'll switch Envoy to
call that. Then we should be clear to const-correct the callback.

(While STACK_OF(OPENSSL_STRING) is used externally, nothing external
touches the comparison function.)

Bug: 498
Change-Id: I77bdf2a72b2553bf9409a1d39326890ed5c3582c
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/53008
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
