summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/devarch.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-09-27 13:59:55 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-09-27 13:59:55 +0200
commit330e7ef39b9a4afa6f484b80bdc3684603c83387 (patch)
treef5d18195d5609dda009a7cb3e1956c22b9a22a7b /sys/src/9/pc/devarch.c
parentdad00a77da3ebfd0f6fa725dbbc98469984b2341 (diff)
kernel: don't tokenize inplace in isaconfig() to make /dev/reboot work
Diffstat (limited to 'sys/src/9/pc/devarch.c')
-rw-r--r--sys/src/9/pc/devarch.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/src/9/pc/devarch.c b/sys/src/9/pc/devarch.c
index 0523ce84e..9ea14d06d 100644
--- a/sys/src/9/pc/devarch.c
+++ b/sys/src/9/pc/devarch.c
@@ -1182,7 +1182,7 @@ idlehands(void)
int
isaconfig(char *class, int ctlrno, ISAConf *isa)
{
- char cc[32], *p;
+ char cc[32], *p, *x;
int i;
snprint(cc, sizeof cc, "%s%d", class, ctlrno);
@@ -1190,6 +1190,10 @@ isaconfig(char *class, int ctlrno, ISAConf *isa)
if(p == nil)
return 0;
+ x = nil;
+ kstrdup(&x, p);
+ p = x;
+
isa->type = "";
isa->nopt = tokenize(p, isa->opt, NISAOPT);
for(i = 0; i < isa->nopt; i++){