1 /* SPDX-License-Identifier: LGPL-2.1+ */ 1 /* SPDX-License-Identifier: LGPL-2.1+ */ 2 /* 2 /* 3 * SSL helper functions shared by sign-file an 3 * SSL helper functions shared by sign-file and extract-cert. 4 */ 4 */ 5 5 6 static void drain_openssl_errors(int l, int si 6 static void drain_openssl_errors(int l, int silent) 7 { 7 { 8 const char *file; 8 const char *file; 9 char buf[120]; 9 char buf[120]; 10 int e, line; 10 int e, line; 11 11 12 if (ERR_peek_error() == 0) 12 if (ERR_peek_error() == 0) 13 return; 13 return; 14 if (!silent) 14 if (!silent) 15 fprintf(stderr, "At main.c:%d: 15 fprintf(stderr, "At main.c:%d:\n", l); 16 16 17 while ((e = ERR_peek_error_line(&file, 17 while ((e = ERR_peek_error_line(&file, &line))) { 18 ERR_error_string(e, buf); 18 ERR_error_string(e, buf); 19 if (!silent) 19 if (!silent) 20 fprintf(stderr, "- SSL 20 fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line); 21 ERR_get_error(); 21 ERR_get_error(); 22 } 22 } 23 } 23 } 24 24 25 #define ERR(cond, fmt, ...) 25 #define ERR(cond, fmt, ...) \ 26 do { 26 do { \ 27 bool __cond = (cond); 27 bool __cond = (cond); \ 28 drain_openssl_errors(__LINE__, 28 drain_openssl_errors(__LINE__, 0); \ 29 if (__cond) { 29 if (__cond) { \ 30 errx(1, fmt, ## __VA_A 30 errx(1, fmt, ## __VA_ARGS__); \ 31 } 31 } \ 32 } while (0) 32 } while (0) 33 33
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.