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

Reply via email to