aboutsummaryrefslogtreecommitdiff
path: root/scripts
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
parent35fdb1bc9cb82fa5630c2d40ae49110ecd7c88ea (diff)
downloadbusybox-fbedacfc8caa1ec8f14e664a881cb0a93c8f8712.tar.gz
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')
-rw-r--r--scripts/basic/docproc.c22
-rw-r--r--scripts/basic/fixdep.c4
-rw-r--r--scripts/kconfig/confdata.c3
-rw-r--r--scripts/kconfig/mconf.c2
-rw-r--r--scripts/kconfig/zconf.l3
-rw-r--r--scripts/kconfig/zconf.y6
6 files changed, 23 insertions, 17 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)
{
pid_t pid;
int ret;
- char real_filename[PATH_MAX + 1];
+ char *real_filename;
+ int rflen;
+
/* Make sure output generated so far are flushed */
fflush(stdout);
switch(pid=fork()) {
@@ -87,10 +89,11 @@ void exec_kernel_doc(char **svec)
perror("fork");
exit(1);
case 0:
- memset(real_filename, 0, sizeof(real_filename));
- strncat(real_filename, getenv("SRCTREE"), PATH_MAX);
- strncat(real_filename, KERNELDOCPATH KERNELDOC,
- PATH_MAX - strlen(real_filename));
+ rflen = strlen(getenv("SRCTREE"));
+ rflen += strlen(KERNELDOCPATH KERNELDOC);
+ real_filename = alloca(rflen + 1);
+ strcpy(real_filename, getenv("SRCTREE"));
+ strcat(real_filename, KERNELDOCPATH KERNELDOC);
execvp(real_filename, svec);
fprintf(stderr, "exec ");
perror(real_filename);
@@ -166,11 +169,10 @@ void find_export_symbols(char * filename)
struct symfile *sym;
char line[MAXLINESZ];
if (filename_exist(filename) == NULL) {
- char real_filename[PATH_MAX + 1];
- memset(real_filename, 0, sizeof(real_filename));
- strncat(real_filename, getenv("SRCTREE"), PATH_MAX);
- strncat(real_filename, filename,
- PATH_MAX - strlen(real_filename));
+ int rflen = strlen(getenv("SRCTREE")) + strlen(filename);
+ char *real_filename = alloca(rflen + 1);
+ strcpy(real_filename, getenv("SRCTREE"));
+ strcat(real_filename, filename);
sym = add_new_file(filename);
fp = fopen(real_filename, "r");
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)
*/
void use_config(char *m, int slen)
{
- char s[PATH_MAX];
+ char *s = alloca(slen+1);
char *p;
if (is_defined_config(m, slen))
@@ -310,7 +310,7 @@ void parse_dep_file(void *map, size_t len)
char *m = map;
char *end = m + len;
char *p;
- char s[PATH_MAX];
+ char *s = alloca(len);
p = memchr(m, ':', len);
if (!p) {
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 9365a12c2..4f83fbfa2 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -70,12 +70,13 @@ static char *conf_expand_value(const char *in)
char *conf_get_default_confname(void)
{
struct stat buf;
- static char fullname[PATH_MAX+1];
+ static char *fullname = NULL;
char *env, *name;
name = conf_expand_value(conf_defname);
env = getenv(SRCTREE);
if (env) {
+ fullname = realloc(fullname, strlen(env) + strlen(name) + 2);
sprintf(fullname, "%s/%s", env, name);
if (!stat(fullname, &buf))
return fullname;
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 647ec09f1..0c548bfc0 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -258,7 +258,7 @@ search_help[] = N_(
static char buf[4096], *bufptr = buf;
static char input_buf[4096];
-static char filename[PATH_MAX+1] = ".config";
+static const char filename[] = ".config";
static char *args[1024], **argptr = args;
static int indent;
static struct termios ios_org;
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l
index d839577ca..6a58b80d3 100644
--- a/scripts/kconfig/zconf.l
+++ b/scripts/kconfig/zconf.l
@@ -265,13 +265,14 @@ static void zconf_endhelp(void)
*/
FILE *zconf_fopen(const char *name)
{
- char *env, fullname[PATH_MAX+1];
+ char *env;
FILE *f;
f = fopen(name, "r");
if (!f && name[0] != '/') {
env = getenv(SRCTREE);
if (env) {
+ char *fullname = alloca(strlen(env) + strlen(name) + 2);
sprintf(fullname, "%s/%s", env, name);
f = fopen(fullname, "r");
}
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 0a7a79664..2007a4e02 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -14,8 +14,6 @@
#define LKC_DIRECT_LINK
#include "lkc.h"
-#include "zconf.hash.c"
-
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
#define PRINTD 0x0001
@@ -99,6 +97,10 @@ static struct menu *current_menu, *current_entry;
menu_end_menu();
} if_entry menu_entry choice_entry
+%{
+#include "zconf.hash.c"
+%}
+
%%
input: stmt_list;