ref: 06bd90dbe5d93aa556920c4ab868edc2e74f6edb
parent: deb07b6357fbdc87e28c35420777a0a46100a630
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Jan 5 02:02:25 EST 2024
telco: fix rfork() race for pid
--- a/sys/src/cmd/telco/telco.c
+++ b/sys/src/cmd/telco/telco.c
@@ -72,7 +72,6 @@
char rbuf[Nrbuf];
char *rp;
char *wp;
- long pid;
};
enum
@@ -1159,7 +1158,7 @@
int n;
char *p;
char file[256];
- int background;
+ int background, pid;
background = 0;
d->ctl = d->data = -1;
@@ -1178,12 +1177,13 @@
if(!background){
background = 1;
- switch(d->pid = rfork(RFPROC|RFMEM)){
+ switch(pid = rfork(RFPROC|RFMEM)){
case -1:
error("out of processes");
case 0:
break;
default:
+ d->monitoring = pid;
return;
}
}
--
⑨