aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/mk
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-04-21 07:38:03 +0000
committerrsc <devnull@localhost>2004-04-21 07:38:03 +0000
commit92a0a8b69faf7882459c1ac6c9186e1c47ef0a91 (patch)
tree3004df9785dbeef29fd8e3cb856afdbf5b416bbc /src/cmd/mk
parent8f8b0e542a8284671f9a3ae0678bb20f6962a420 (diff)
downloadplan9port-92a0a8b69faf7882459c1ac6c9186e1c47ef0a91.tar.gz
plan9port-92a0a8b69faf7882459c1ac6c9186e1c47ef0a91.tar.bz2
plan9port-92a0a8b69faf7882459c1ac6c9186e1c47ef0a91.zip
the lastbug fix?
Diffstat (limited to 'src/cmd/mk')
-rw-r--r--src/cmd/mk/archive.c4
-rw-r--r--src/cmd/mk/graph.c2
-rw-r--r--src/cmd/mk/mk.c4
-rw-r--r--src/cmd/mk/unix.c11
4 files changed, 12 insertions, 9 deletions
diff --git a/src/cmd/mk/archive.c b/src/cmd/mk/archive.c
index 14d2082d..8edfdddc 100644
--- a/src/cmd/mk/archive.c
+++ b/src/cmd/mk/archive.c
@@ -17,7 +17,7 @@ struct ar_hdr
};
#define SAR_HDR (SARNAME+44)
-static int dolong;
+static int dolong = 1;
static void atimes(char *);
static char *split(char*, char**);
@@ -154,7 +154,7 @@ atimes(char *ar)
goto skip;
}else if(strings && h.name[0]=='/' && isdigit(h.name[1])){
i = strtol(h.name+1, &p, 10);
- if(*p != ' ' || strlen(strings) < i)
+ if(*p != ' ' || i >= strlen(strings))
goto skip;
p = strings+i;
for(; *p && *p != '/'; p++)
diff --git a/src/cmd/mk/graph.c b/src/cmd/mk/graph.c
index 58529259..fdb02881 100644
--- a/src/cmd/mk/graph.c
+++ b/src/cmd/mk/graph.c
@@ -180,7 +180,7 @@ dumpn(char *s, Node *n)
char buf[1024];
Arc *a;
- sprint(buf, "%s ", (*s == ' ')? s:"");
+ snprint(buf, sizeof buf, "%s ", (*s == ' ')? s:"");
Bprint(&bout, "%s%s@%ld: time=%ld flags=0x%x next=%ld\n",
s, n->name, n, n->time, n->flags, n->next);
for(a = n->prereqs; a; a = a->next)
diff --git a/src/cmd/mk/mk.c b/src/cmd/mk/mk.c
index 37eb3511..9ab4c538 100644
--- a/src/cmd/mk/mk.c
+++ b/src/cmd/mk/mk.c
@@ -198,7 +198,7 @@ pcmp(char *prog, char *p, char *q)
int pid;
Bflush(&bout);
- sprint(buf, "%s '%s' '%s'\n", prog, p, q);
+ snprint(buf, sizeof buf, "%s '%s' '%s'\n", prog, p, q);
pid = pipecmd(buf, 0, 0);
while(waitup(-3, &pid) >= 0)
;
@@ -214,7 +214,7 @@ outofdate(Node *node, Arc *arc, int eval)
str = 0;
if(arc->prog){
- sprint(buf, "%s%c%s", node->name, 0377, arc->n->name);
+ snprint(buf, sizeof buf, "%s%c%s", node->name, 0377, arc->n->name);
sym = symlook(buf, S_OUTOFDATE, 0);
if(sym == 0 || eval){
if(sym == 0)
diff --git a/src/cmd/mk/unix.c b/src/cmd/mk/unix.c
index 8b7e9cb8..00bee01e 100644
--- a/src/cmd/mk/unix.c
+++ b/src/cmd/mk/unix.c
@@ -47,15 +47,15 @@ exportenv(Envy *e)
{
int i;
char **p;
- char buf[4096];
+ static char buf[16384];
p = 0;
for(i = 0; e->name; e++, i++) {
p = (char**) Realloc(p, (i+2)*sizeof(char*));
if(e->values)
- sprint(buf, "%s=%s", e->name, wtos(e->values, IWS));
+ snprint(buf, sizeof buf, "%s=%s", e->name, wtos(e->values, IWS));
else
- sprint(buf, "%s=", e->name);
+ snprint(buf, sizeof buf, "%s=", e->name);
p[i] = strdup(buf);
}
p[i] = 0;
@@ -91,6 +91,8 @@ expunge(int pid, char *msg)
kill(pid, SIGHUP);
}
+int mypid;
+
int
execsh(char *args, char *cmd, Bufblock *buf, Envy *e)
{
@@ -102,6 +104,7 @@ execsh(char *args, char *cmd, Bufblock *buf, Envy *e)
Exit();
}
pid = fork();
+ mypid = getpid();
if(pid < 0){
mkperror("mk fork");
Exit();
@@ -225,7 +228,7 @@ static struct
SIGFPE, "sys: fp: fptrap",
SIGPIPE, "sys: write on closed pipe",
SIGILL, "sys: trap: illegal instruction",
- SIGSEGV, "sys: segmentation violation",
+// SIGSEGV, "sys: segmentation violation",
0, 0
};