| /* 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) |