Details:
strncpy case fails in kernel space.
test_strncpy (void)
{
...
(void) strcpy (one, "abcdefgh");
(void) strncpy (one, "xyz", 5); /* Copy includes padding. */
equal (one, "xyz", 7);
equal (one+4, "", 8);
equal (one+5, "fgh", 9);
(void) strcpy (one, "abc");
(void) strncpy (one, "xyz", 0); /* Zero-length copy. */
equal (one, "abc", 10);
(void) strncpy (one, "", 2); /* Zero-length source. */
equal (one, "", 11);
equal (one+1, "", 12);
equal (one+2, "c", 13);
...
}
root:/proc/sys/kernel> insmod /lib/modules/string_test.ko
strncpy flunked test 8
strncpy flunked test 12
|
Details:
strncpy case fails in kernel space.
test_strncpy (void)
{
...
(void) strcpy (one, "abcdefgh");
(void) strncpy (one, "xyz", 5); /* Copy includes padding. */
equal (one, "xyz", 7);
equal (one+4, "", 8);
equal (one+5, "fgh", 9);
(void) strcpy (one, "abc");
(void) strncpy (one, "xyz", 0); /* Zero-length copy. */
equal (one, "abc", 10);
(void) strncpy (one, "", 2); /* Zero-length source. */
equal (one, "", 11);
equal (one+1, "", 12);
equal (one+2, "c", 13);
...
}
root:/proc/sys/kernel> insmod /lib/modules/string_test.ko
strncpy flunked test 8
strncpy flunked test 12
|