/* SPDX-License-Identifier: LGPL-2.1+ */ /* * SSL helper functions shared by sign-file and extract-cert. */ static void drain_openssl_errors(int l, int silent) { const char *file; char buf[120]; int e, line; if (ERR_peek_error() == 0) return; if (!silent) fprintf(stderr, "At main.c:%d:\n", l); while ((e = ERR_peek_error_line(&file, &line))) { ERR_error_string(e, buf); if (!silent) fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line); ERR_get_error(); } } #define ERR(cond, fmt, ...) \ do { \ bool __cond = (cond); \ drain_openssl_errors(__LINE__, 0); \ if (__cond) { \ errx(1, fmt, ## __VA_ARGS__); \ } \ } while (0)