summaryrefslogtreecommitdiffstats
path: root/debian/patches/102989.patch
blob: f228c0d2e3418e62c17c56e9a053a70564bcb625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Index: include/iprt/string.h
===================================================================
--- a/include/iprt/string.h	(revision 102988)
+++ b/include/iprt/string.h	(revision 102989)
@@ -245,7 +245,29 @@
 # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy)   memcpy((a_pDst), (a_pSrc), (a_cbToCopy))
 #endif /* !RT_OS_LINUX && !__KERNEL__ */
 
+/** @def RT_STRSCPY
+ * Copy string and NULL-terminate output buffer.
+ *
+ * This macro should mostly be used in Linux kernel code. This is
+ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60
+ * when strscpy was introduced as an alternative. Finally, strlcpy was
+ * completely removed from kernel code in 6.8.0.
+ *
+ * @param   a_pDst          Pointer to the destination string buffer.
+ * @param   a_pSrc          Pointer to the source NULL-terminated string buffer.
+ * @param   a_cbToCopy      Size of destination buffer..
+ */
+#if defined(RT_OS_LINUX) && defined(__KERNEL__)
+# if (RTLNX_VER_MIN(3,16,60))
+#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
+# else /* < 3.16.60 */
+#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
+# endif
+#else  /* !RT_OS_LINUX && !__KERNEL__ */
+# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
+#endif /* !RT_OS_LINUX && !__KERNEL__ */
 
+
 #ifdef IN_RING3
 
 /**