Change ERR_add_error_[v]data to append
The "add error data" functions now append to the current error.
Add a test for this.
Cleanup some of the ERR_put functions.
In the FIPS module, always append "(in the FIPS module)" to any errors.
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9181)
diff --git a/test/errtest.c b/test/errtest.c
index 39017da..df222da 100644
--- a/test/errtest.c
+++ b/test/errtest.c
@@ -32,8 +32,21 @@
#endif
}
+/* Test that calls to ERR_add_error_[v]data append */
+static int vdata_appends(void)
+{
+ const char *data;
+
+ CRYPTOerr(0, ERR_R_MALLOC_FAILURE);
+ ERR_add_error_data(1, "hello ");
+ ERR_add_error_data(1, "world");
+ ERR_get_error_line_data(NULL, NULL, &data, NULL);
+ return TEST_str_eq(data, "hello world");
+}
+
int setup_tests(void)
{
ADD_TEST(preserves_system_error);
+ ADD_TEST(vdata_appends);
return 1;
}