Fix DSA to skip EOL test when parsing mod line.
[openssl.git] / crypto / err / err_prn.c
index 6515d10c073c787cd437dbc244dd9b76aec5464f..a0168ac8ed628fd4d511059d68b0bffaebad92ed 100644 (file)
@@ -72,16 +72,17 @@ void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u),
        const char *file,*data;
        int line,flags;
        unsigned long es;
-       CRYPTO_THREADID tid;
+       CRYPTO_THREADID cur;
 
-       CRYPTO_THREADID_set(&tid);
-       es = CRYPTO_THREADID_hash(&tid);
+       CRYPTO_THREADID_current(&cur);
+       es=CRYPTO_THREADID_hash(&cur);
        while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0)
                {
                ERR_error_string_n(l, buf, sizeof buf);
                BIO_snprintf(buf2, sizeof(buf2), "%lu:%s:%s:%d:%s\n", es, buf,
                        file, line, (flags & ERR_TXT_STRING) ? data : "");
-               cb(buf2, strlen(buf2), u);
+               if (cb(buf2, strlen(buf2), u) <= 0)
+                       break; /* abort outputting the error report */
                }
        }