| @@ -1,51 +1,59 @@ | | | @@ -1,51 +1,59 @@ |
1 | $NetBSD: patch-ae,v 1.2 2006/08/06 20:49:52 mjl Exp $ | | 1 | $NetBSD: patch-ae,v 1.3 2011/11/24 13:44:35 joerg Exp $ |
2 | | | 2 | |
3 | --- sserver.cpp.orig 2003-03-07 20:22:13.000000000 +0100 | | 3 | --- sserver.cpp.orig 2003-03-07 19:22:13.000000000 +0000 |
4 | +++ sserver.cpp 2006-08-06 22:45:30.000000000 +0200 | | 4 | +++ sserver.cpp |
5 | @@ -52,7 +52,7 @@ | | 5 | @@ -18,6 +18,7 @@ program: sserver version 0.03 by Axel Bu |
| | | 6 | |
| | | 7 | #include <stdlib.h> |
| | | 8 | #include <netdb.h> |
| | | 9 | +#include <limits.h> |
| | | 10 | #include <iostream> |
| | | 11 | #include <unistd.h> |
| | | 12 | #include <string.h> |
| | | 13 | @@ -52,7 +53,7 @@ int main(int argc, char * argv[]) |
6 | char a_grabname[256]; | | 14 | char a_grabname[256]; |
7 | char a_vpid[20]; | | 15 | char a_vpid[20]; |
8 | char a_apid[20]; | | 16 | char a_apid[20]; |
9 | - char a_filename[256]; | | 17 | - char a_filename[256]; |
10 | + char a_filename[PATH_MAX]; | | 18 | + char a_filename[PATH_MAX]; |
11 | char a_path[256]=""; | | 19 | char a_path[256]=""; |
12 | char a_host[256]; | | 20 | char a_host[256]; |
13 | int i,n; | | 21 | int i,n; |
14 | @@ -169,10 +169,10 @@ | | 22 | @@ -169,10 +170,10 @@ int main(int argc, char * argv[]) |
15 | sprintf(a_vpid,"0x%03x",recdata.vpid); | | 23 | sprintf(a_vpid,"0x%03x",recdata.vpid); |
16 | sprintf(a_apid,"0x%03x",recdata.apid); | | 24 | sprintf(a_apid,"0x%03x",recdata.apid); |
17 | | | 25 | |
18 | - strcpy (a_filename,a_path); | | 26 | - strcpy (a_filename,a_path); |
19 | + strlcpy (a_filename,a_path, sizeof(a_filename)); | | 27 | + strlcpy (a_filename,a_path, sizeof(a_filename)); |
20 | | | 28 | |
21 | if (strlen(a_filename)) { | | 29 | if (strlen(a_filename)) { |
22 | - strcat(a_filename,"/"); | | 30 | - strcat(a_filename,"/"); |
23 | + strlcat(a_filename, "/", sizeof(a_filename)); | | 31 | + strlcat(a_filename, "/", sizeof(a_filename)); |
24 | } | | 32 | } |
25 | | | 33 | |
26 | if (strlen(recdata.channelname) > 0) | | 34 | if (strlen(recdata.channelname) > 0) |
27 | @@ -185,8 +185,8 @@ | | 35 | @@ -185,8 +186,8 @@ int main(int argc, char * argv[]) |
28 | } | | 36 | } |
29 | } while (*p_act); | | 37 | } while (*p_act); |
30 | | | 38 | |
31 | - strcat(a_filename, recdata.channelname); | | 39 | - strcat(a_filename, recdata.channelname); |
32 | - strcat(a_filename, "_"); | | 40 | - strcat(a_filename, "_"); |
33 | + strlcat(a_filename, recdata.channelname, sizeof(a_filename)); | | 41 | + strlcat(a_filename, recdata.channelname, sizeof(a_filename)); |
34 | + strlcat(a_filename, "_", sizeof(a_filename)); | | 42 | + strlcat(a_filename, "_", sizeof(a_filename)); |
35 | } | | 43 | } |
36 | | | 44 | |
37 | if (strlen(recdata.epgtitle) > 0) | | 45 | if (strlen(recdata.epgtitle) > 0) |
38 | @@ -206,13 +206,13 @@ | | 46 | @@ -206,13 +207,13 @@ int main(int argc, char * argv[]) |
39 | } | | 47 | } |
40 | } while (*p_act++); | | 48 | } while (*p_act++); |
41 | | | 49 | |
42 | - strcat(a_filename, recdata.epgtitle); | | 50 | - strcat(a_filename, recdata.epgtitle); |
43 | - strcat(a_filename, "_"); | | 51 | - strcat(a_filename, "_"); |
44 | + strlcat(a_filename, recdata.epgtitle, sizeof(a_filename)); | | 52 | + strlcat(a_filename, recdata.epgtitle, sizeof(a_filename)); |
45 | + strlcat(a_filename, "_", sizeof(a_filename)); | | 53 | + strlcat(a_filename, "_", sizeof(a_filename)); |
46 | } | | 54 | } |
47 | | | 55 | |
48 | t = time (&t); | | 56 | t = time (&t); |
49 | - strftime (buf, sizeof(a_filename)-1, "%Y%m%d_%H%M%S", localtime(&t)); | | 57 | - strftime (buf, sizeof(a_filename)-1, "%Y%m%d_%H%M%S", localtime(&t)); |
50 | - strcat(a_filename, buf); | | 58 | - strcat(a_filename, buf); |
51 | + strftime (buf, 20, "%Y%m%d_%H%M%S", localtime(&t)); | | 59 | + strftime (buf, 20, "%Y%m%d_%H%M%S", localtime(&t)); |