Page MenuHomeFreeBSD

D56529.diff
No OneTemporary

D56529.diff

diff --git a/lib/libsbuf/tests/sbuf_string_test.c b/lib/libsbuf/tests/sbuf_string_test.c
--- a/lib/libsbuf/tests/sbuf_string_test.c
+++ b/lib/libsbuf/tests/sbuf_string_test.c
@@ -293,25 +293,38 @@
ATF_CHECK_EQ(ENOMEM, sbuf_error(&sb));
sbuf_delete(&sb);
}
+
ATF_TC_WITHOUT_HEAD(sbuf_printf_test);
ATF_TC_BODY(sbuf_printf_test, tc)
{
struct sbuf *sb;
- char buffer[10];
+ char buf[10];
int result;
- sb = sbuf_new(NULL, buffer, sizeof(buffer), SBUF_FIXEDLEN);
+ sb = sbuf_new(NULL, buf, sizeof(buf), SBUF_FIXEDLEN);
ATF_REQUIRE(sb != NULL);
result = sbuf_printf(sb, "exactly_15_chars");
/* Validates that the function reported the error correctly */
ATF_REQUIRE_EQ_MSG(result, -1, "sbuf_printf failed to report overflow!");
- ATF_REQUIRE_MSG(sbuf_len(sb) < (int)sizeof(buffer), "Buffer overflow detected!");
+ ATF_REQUIRE_MSG(sbuf_len(sb) < (int)sizeof(buf), "Buffer overflow detected!");
sbuf_delete(sb);
}
+ATF_TC_WITHOUT_HEAD(sbuf_printf_finish);
+ATF_TC_BODY(sbuf_printf_finish, tc)
+{
+ struct sbuf sb;
+ char buf[10];
+
+ sbuf_new(&sb, buf, sizeof(buf), SBUF_FIXEDLEN);
+ sbuf_printf(&sb, "overflow_test");
+
+ ATF_CHECK_EQ_MSG(-1, sbuf_finish(&sb), "sbuf_finish should return -1 on overflow");
+ sbuf_delete(&sb);
+}
ATF_TP_ADD_TCS(tp)
{
@@ -323,7 +336,7 @@
ATF_TP_ADD_TC(tp, sbuf_trim_test);
ATF_TP_ADD_TC(tp, sbuf_printf_test);
ATF_TP_ADD_TC(tp, sbuf_printf_overflow);
-
+ ATF_TP_ADD_TC(tp, sbuf_printf_finish);
return (atf_no_error());
}

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 26, 6:14 AM (16 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31951059
Default Alt Text
D56529.diff (1 KB)

Event Timeline