Hello,
please see simple attached patch. Although test catches the bug and is
no doubt useful I believe that we should avoid segfaulting even in tests.
Thanks for considering!
>From a509c49fbc55664170d96e0e29bf6263c8d38a2a Mon Sep 17 00:00:00 2001
From: Pavel Reichl <[email protected]>
Date: Thu, 28 May 2015 11:13:47 -0400
Subject: [PATCH] TESTS: fix segfault in test_sss_strerror_err_last
If there were more error codes than error messages. This
test segfaulted.
./util-tests
../src/tests/util-tests.c:1073:E:sss_strerror:test_sss_strerror_err_last:0: (after this point) Received signal 11 (Segmentation fault)
---
src/tests/util-tests.c | 2 ++
src/util/util_errors.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/tests/util-tests.c b/src/tests/util-tests.c
index 24ee6ab494a0bb3b86e67be87b8d45ff01f646e9..2bfcad9f37c6700997879d9b8bb0282100f79d9d 100644
--- a/src/tests/util-tests.c
+++ b/src/tests/util-tests.c
@@ -1070,8 +1070,10 @@ START_TEST(test_convert_time)
}
END_TEST
+extern size_t sss_num_of_err_msgs;
START_TEST(test_sss_strerror_err_last)
{
+ ck_assert_int_eq(ERR_BASE + sss_num_of_err_msgs, ERR_LAST + 1);
ck_assert_str_eq(sss_strerror(ERR_LAST), "ERR_LAST");
}
END_TEST
diff --git a/src/util/util_errors.c b/src/util/util_errors.c
index 64c52b57c24e32e87eb12ecb60bd3ce2cc5e24fb..62a48fdc85bf3b78d09debeb9761f78655490fab 100644
--- a/src/util/util_errors.c
+++ b/src/util/util_errors.c
@@ -77,6 +77,8 @@ struct err_string error_to_str[] = {
{ "ERR_LAST" } /* ERR_LAST */
};
+/* used by sss_strerror_err_last test only */
+size_t sss_num_of_err_msgs = sizeof(error_to_str) / sizeof(struct err_string);
const char *sss_strerror(errno_t error)
{
--
2.1.0
_______________________________________________
sssd-devel mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel