From: Mark Syms <mark.syms@citrix.com>
Date: Fri, 26 May 2017 19:13:01 +0100
Subject: Fix unit test build in rpmbuild/mock

Signed-off-by: Mark Syms <mark.syms@citrix.com>
Reviewed-by: Chandrika Srinivasan <chandrika.srinivasan@citrix.com>
---
 mockatests/cbt/Makefile.am     |  4 +++-
 mockatests/cbt/test-cbt-util.c | 26 ++++++++++++++++++++------
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/mockatests/cbt/Makefile.am b/mockatests/cbt/Makefile.am
index 60cff40..6b1e52d 100644
--- a/mockatests/cbt/Makefile.am
+++ b/mockatests/cbt/Makefile.am
@@ -11,4 +11,6 @@ TESTS = test-cbt-util
 
 test_cbt_util_SOURCES = test-cbt-util.c
 test_cbt_util_LDFLAGS = $(top_srcdir)/cbt/libcbtutil.la -lcmocka -luuid
-test_cbt_util_LDFLAGS += -Wl,--wrap=fopen,--wrap=fclose,--wrap=printf
+test_cbt_util_LDFLAGS += -Wl,--wrap=fopen,--wrap=fclose
+# Need to wrap both of these as rpmbuild/mock set -D_FORTIFY_SOURCE=2
+test_cbt_util_LDFLAGS += -Wl,--wrap=printf,--wrap=__printf_chk
diff --git a/mockatests/cbt/test-cbt-util.c b/mockatests/cbt/test-cbt-util.c
index 87debca..8d385aa 100644
--- a/mockatests/cbt/test-cbt-util.c
+++ b/mockatests/cbt/test-cbt-util.c
@@ -36,14 +36,11 @@ __wrap_fclose(FILE *fp)
 }
 
 int
-__wrap_printf(const char *format, ...)
+wrap_vprintf(const char *format, va_list ap)
 {
-	va_list ap;
 	int bufsize = mock();
 	char* buf = mock();
 
-	va_start(ap, format);
-
 	int len = vsnprintf(buf, bufsize, format, ap);
 
 	assert_in_range(len, 0, bufsize);
@@ -51,6 +48,23 @@ __wrap_printf(const char *format, ...)
 	return len;
 }
 
+int
+__wrap_printf(const char *format, ...)
+{
+	va_list ap;
+	va_start(ap, format);
+
+	return wrap_vprintf(format, ap);
+}
+
+int
+__wrap___printf_chk (int __flag, const char *format, ...)
+{
+	va_list ap;
+	va_start(ap, format);
+
+	return wrap_vprintf(format, ap);
+}
 
 void
 test_get_command_create(void **state)
@@ -107,8 +121,8 @@ void test_cbt_util_get_flag(void **state)
 	will_return(__wrap_fopen, test_log);
 	expect_value(__wrap_fclose, fp, test_log);
 
-	will_return(__wrap_printf, 1024);
-	will_return(__wrap_printf, output);
+	will_return(wrap_vprintf, 1024);
+	will_return(wrap_vprintf, output);
 
 	result = cbt_util_get(4, args);
 
-- 
1.8.3.1

