| Index: patches/07_fix_strcpy_in_ptp_unpack_ptptime.patch
|
| diff --git a/patches/07_fix_strcpy_in_ptp_unpack_ptptime.patch b/patches/07_fix_strcpy_in_ptp_unpack_ptptime.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4e7f8e8ccc2d2ac1206aac91bf53594b5d3b77af
|
| --- /dev/null
|
| +++ b/patches/07_fix_strcpy_in_ptp_unpack_ptptime.patch
|
| @@ -0,0 +1,27 @@
|
| +Index: src/ptp-pack.c
|
| +===================================================================
|
| +--- src/ptp-pack.c (revision 148712)
|
| ++++ src/ptp-pack.c (working copy)
|
| +@@ -533,7 +533,7 @@
|
| + ptp_unpack_PTPTIME (const char *str) {
|
| + char ptpdate[40];
|
| + char tmp[5];
|
| +- int ptpdatelen;
|
| ++ size_t ptpdatelen;
|
| + struct tm tm;
|
| +
|
| + if (!str)
|
| +@@ -543,11 +543,12 @@
|
| + /*ptp_debug (params ,"datelen is larger then size of buffer", ptpdatelen, (int)sizeof(ptpdate));*/
|
| + return 0;
|
| + }
|
| +- strcpy (ptpdate, str);
|
| + if (ptpdatelen<15) {
|
| + /*ptp_debug (params ,"datelen is less than 15 (%d)", ptpdatelen);*/
|
| + return 0;
|
| + }
|
| ++ strncpy (ptpdate, str, sizeof(ptpdate));
|
| ++ ptpdate[sizeof(ptpdate) - 1] = '\0';
|
| +
|
| + memset(&tm,0,sizeof(tm));
|
| + strncpy (tmp, ptpdate, 4);
|
|
|