aboutsummaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorJérémie Koenig <jk@jk.fr.eu.org>2010-03-26 19:08:53 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-03-26 19:08:53 +0100
commitfbedacfc8caa1ec8f14e664a881cb0a93c8f8712 (patch)
tree6c08780bbaad6320149930bdbcfbee5a2eed9f5d /scripts/basic
parent35fdb1bc9cb82fa5630c2d40ae49110ecd7c88ea (diff)
downloadbusybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.tar.gz
busybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.tar.bz2
busybox-w32-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.zip
Hurd compat fixes. Mostly dealing with absent PATH_MAX
Signed-off-by: Jérémie Koenig <jk@jk.fr.eu.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'scripts/basic')
-rw-r--r--scripts/basic/docproc.c22
-rw-r--r--scripts/basic/fixdep.c4
2 files changed, 14 insertions, 12 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)
diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index 6d61044c4..bbb575cec 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -203,7 +203,7 @@ void clear_config(void)
203 */ 203 */
204void use_config(char *m, int slen) 204void use_config(char *m, int slen)
205{ 205{
206 char s[PATH_MAX]; 206 char *s = alloca(slen+1);
207 char *p; 207 char *p;
208 208
209 if (is_defined_config(m, slen)) 209 if (is_defined_config(m, slen))
@@ -310,7 +310,7 @@ void parse_dep_file(void *map, size_t len)
310 char *m = map; 310 char *m = map;
311 char *end = m + len; 311 char *end = m + len;
312 char *p; 312 char *p;
313 char s[PATH_MAX]; 313 char *s = alloca(len);
314 314
315 p = memchr(m, ':', len); 315 p = memchr(m, ':', len);
316 if (!p) { 316 if (!p) {