Formal improvements of path_max.patch
Fabian Greffrath
12 years ago
0 | 0 | Description: Dynamically allocate file name buffers. |
1 | 1 | Author: Fabian Greffrath <fabian+debian@greffrath.com> |
2 | 2 | Bug-Ubuntu: https://launchpad.net/bugs/475050 |
3 | Last-Update: 2011-11-04 | |
3 | Last-Update: 2011-11-11 | |
4 | 4 | |
5 | 5 | --- faad.orig/frontend/main.c |
6 | 6 | +++ faad/frontend/main.c |
11 | 11 | - char aacFileName[255]; |
12 | 12 | - char audioFileName[255]; |
13 | 13 | - char adtsFileName[255]; |
14 | + char *aacFileName; | |
15 | + char *audioFileName; | |
16 | + char *adtsFileName; | |
14 | + char *aacFileName = NULL; | |
15 | + char *audioFileName = NULL; | |
16 | + char *adtsFileName = NULL; | |
17 | 17 | unsigned char header[8]; |
18 | 18 | float length = 0; |
19 | 19 | FILE *hMP4File; |
20 | @@ -1157,6 +1157,7 @@ int main(int argc, char *argv[]) | |
20 | @@ -1157,6 +1157,12 @@ int main(int argc, char *argv[]) | |
21 | 21 | if (optarg) |
22 | 22 | { |
23 | 23 | outfile_set = 1; |
24 | + audioFileName = (char *) malloc(strlen(optarg) + 1); | |
24 | + audioFileName = (char *) malloc(sizeof(char) * (strlen(optarg) + 1)); | |
25 | + if (audioFileName == NULL) | |
26 | + { | |
27 | + faad_fprintf(stderr, "Error allocating memory for audioFileName.\n"); | |
28 | + return 1; | |
29 | + } | |
25 | 30 | strcpy(audioFileName, optarg); |
26 | 31 | } |
27 | 32 | break; |
28 | @@ -1164,6 +1165,7 @@ int main(int argc, char *argv[]) | |
33 | @@ -1164,6 +1170,12 @@ int main(int argc, char *argv[]) | |
29 | 34 | if (optarg) |
30 | 35 | { |
31 | 36 | adts_out = 1; |
32 | + adtsFileName = (char *) malloc(strlen(optarg) + 1); | |
37 | + adtsFileName = (char *) malloc(sizeof(char) * (strlen(optarg) + 1)); | |
38 | + if (adtsFileName == NULL) | |
39 | + { | |
40 | + faad_fprintf(stderr, "Error allocating memory for adtsFileName.\n"); | |
41 | + return 1; | |
42 | + } | |
33 | 43 | strcpy(adtsFileName, optarg); |
34 | 44 | } |
35 | 45 | break; |
36 | @@ -1284,6 +1286,7 @@ int main(int argc, char *argv[]) | |
46 | @@ -1284,6 +1296,12 @@ int main(int argc, char *argv[]) | |
37 | 47 | #endif |
38 | 48 | |
39 | 49 | /* point to the specified file name */ |
40 | + aacFileName = (char *) malloc(strlen(argv[optind]) + 1); | |
50 | + aacFileName = (char *) malloc(sizeof(char) * (strlen(argv[optind]) + 1)); | |
51 | + if (aacFileName == NULL) | |
52 | + { | |
53 | + faad_fprintf(stderr, "Error allocating memory for aacFileName.\n"); | |
54 | + return 1; | |
55 | + } | |
41 | 56 | strcpy(aacFileName, argv[optind]); |
42 | 57 | |
43 | 58 | #ifdef _WIN32 |
44 | @@ -1297,6 +1300,7 @@ int main(int argc, char *argv[]) | |
59 | @@ -1297,6 +1315,12 @@ int main(int argc, char *argv[]) | |
45 | 60 | */ |
46 | 61 | if(!writeToStdio && !outfile_set) |
47 | 62 | { |
48 | + audioFileName = (char *) malloc(strlen(aacFileName) + 1 + strlen(file_ext[format]) + 1); | |
63 | + audioFileName = (char *) malloc(sizeof(char) * (strlen(aacFileName) + 1 + strlen(file_ext[format]) + 1)); | |
64 | + if (audioFileName == NULL) | |
65 | + { | |
66 | + faad_fprintf(stderr, "Error allocating memory for audioFileName.\n"); | |
67 | + return 1; | |
68 | + } | |
49 | 69 | strcpy(audioFileName, aacFileName); |
50 | 70 | |
51 | 71 | fnp = (char *)strrchr(audioFileName,'.'); |
72 | @@ -1357,6 +1381,11 @@ int main(int argc, char *argv[]) | |
73 | old_format, &length); | |
74 | } | |
75 | ||
76 | + if (audioFileName != NULL) | |
77 | + free (audioFileName); | |
78 | + if (adtsFileName != NULL) | |
79 | + free (adtsFileName); | |
80 | + | |
81 | if (!result && !infoOnly) | |
82 | { | |
83 | #ifdef _WIN32 | |
84 | @@ -1372,5 +1401,8 @@ int main(int argc, char *argv[]) | |
85 | dec_length, length/dec_length); | |
86 | } | |
87 | ||
88 | + if (aacFileName != NULL) | |
89 | + free (aacFileName); | |
90 | + | |
91 | return 0; | |
92 | } |