12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- --- a/backport-include/linux/string.h
- +++ b/backport-include/linux/string.h
- @@ -25,4 +25,8 @@ extern void *memdup_user_nul(const void
- void memzero_explicit(void *s, size_t count);
- #endif
-
- +#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0))
- +ssize_t strscpy(char *dest, const char *src, size_t count);
- +#endif
- +
- #endif /* __BACKPORT_LINUX_STRING_H */
- --- a/compat/backport-4.3.c
- +++ b/compat/backport-4.3.c
- @@ -57,3 +57,29 @@ void seq_hex_dump(struct seq_file *m, co
- }
- }
- EXPORT_SYMBOL_GPL(seq_hex_dump);
- +
- +ssize_t strscpy(char *dest, const char *src, size_t count)
- +{
- + long res = 0;
- +
- + if (count == 0)
- + return -E2BIG;
- +
- + while (count) {
- + char c;
- +
- + c = src[res];
- + dest[res] = c;
- + if (!c)
- + return res;
- + res++;
- + count--;
- + }
- +
- + /* Hit buffer length without finding a NUL; force NUL-termination. */
- + if (res)
- + dest[res-1] = '\0';
- +
- + return -E2BIG;
- +}
- +EXPORT_SYMBOL_GPL(strscpy);
|