aboutsummaryrefslogtreecommitdiff
path: root/scripts/basic/docproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/basic/docproc.c')
-rw-r--r--scripts/basic/docproc.c22
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)