diff options
Diffstat (limited to 'scripts/basic/docproc.c')
-rw-r--r-- | scripts/basic/docproc.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index dc7a0fcd2..ef5181226 100644 --- a/scripts/basic/docproc.c +++ b/scripts/basic/docproc.c | |||
@@ -79,7 +79,9 @@ void exec_kernel_doc(char **svec) | |||
79 | { | 79 | { |
80 | pid_t pid; | 80 | pid_t pid; |
81 | int ret; | 81 | int ret; |
82 | char real_filename[PATH_MAX + 1]; | 82 | char *real_filename; |
83 | int rflen; | ||
84 | |||
83 | /* Make sure output generated so far are flushed */ | 85 | /* Make sure output generated so far are flushed */ |
84 | fflush(stdout); | 86 | fflush(stdout); |
85 | switch(pid=fork()) { | 87 | switch(pid=fork()) { |
@@ -87,10 +89,11 @@ void exec_kernel_doc(char **svec) | |||
87 | perror("fork"); | 89 | perror("fork"); |
88 | exit(1); | 90 | exit(1); |
89 | case 0: | 91 | case 0: |
90 | memset(real_filename, 0, sizeof(real_filename)); | 92 | rflen = strlen(getenv("SRCTREE")); |
91 | strncat(real_filename, getenv("SRCTREE"), PATH_MAX); | 93 | rflen += strlen(KERNELDOCPATH KERNELDOC); |
92 | strncat(real_filename, KERNELDOCPATH KERNELDOC, | 94 | real_filename = alloca(rflen + 1); |
93 | PATH_MAX - strlen(real_filename)); | 95 | strcpy(real_filename, getenv("SRCTREE")); |
96 | strcat(real_filename, KERNELDOCPATH KERNELDOC); | ||
94 | execvp(real_filename, svec); | 97 | execvp(real_filename, svec); |
95 | fprintf(stderr, "exec "); | 98 | fprintf(stderr, "exec "); |
96 | perror(real_filename); | 99 | perror(real_filename); |
@@ -166,11 +169,10 @@ void find_export_symbols(char * filename) | |||
166 | struct symfile *sym; | 169 | struct symfile *sym; |
167 | char line[MAXLINESZ]; | 170 | char line[MAXLINESZ]; |
168 | if (filename_exist(filename) == NULL) { | 171 | if (filename_exist(filename) == NULL) { |
169 | char real_filename[PATH_MAX + 1]; | 172 | int rflen = strlen(getenv("SRCTREE")) + strlen(filename); |
170 | memset(real_filename, 0, sizeof(real_filename)); | 173 | char *real_filename = alloca(rflen + 1); |
171 | strncat(real_filename, getenv("SRCTREE"), PATH_MAX); | 174 | strcpy(real_filename, getenv("SRCTREE")); |
172 | strncat(real_filename, filename, | 175 | strcat(real_filename, filename); |
173 | PATH_MAX - strlen(real_filename)); | ||
174 | sym = add_new_file(filename); | 176 | sym = add_new_file(filename); |
175 | fp = fopen(real_filename, "r"); | 177 | fp = fopen(real_filename, "r"); |
176 | if (fp == NULL) | 178 | if (fp == NULL) |