mac80211: fix build on linux 3.18
authorFelix Fietkau <nbd@nbd.name>
Thu, 9 Feb 2017 13:12:54 +0000 (14:12 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 9 Feb 2017 13:22:26 +0000 (14:22 +0100)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mac80211/patches/011-backport_strscpy.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/011-backport_strscpy.patch b/package/kernel/mac80211/patches/011-backport_strscpy.patch
new file mode 100644 (file)
index 0000000..c8e26c4
--- /dev/null
@@ -0,0 +1,43 @@
+--- 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);