Re: [PATCH v2 7/8] Use posix_spawn to run external scripts

Ladislav Michl <[email protected]> Fri, 24 Jan 2020 10:06:53 +0100
Newsgroups gmane.linux.drivers.gnokii
Message-ID <20200124090653.GA24336@lenoch>
T24gRnJpLCBKYW4gMjQsIDIwMjAgYXQgMDk6NDg6MjVBTSArMDEwMCwgUGF3ZWwgS290IHdyb3Rl
Ogo+IEhpLAo+IAo+IE9uIFRodSwgSmFuIDIzLCAyMDIwIGF0IDI6MDIgQU0gTGFkaXNsYXYgTWlj
aGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPiB3cm90ZToKPiA+Cj4gPiBPbiBNb24sIEphbiAyMCwg
MjAyMCBhdCAwMTowNzozNVBNICswMTAwLCBQYXdlbCBLb3Qgd3JvdGU6Cj4gPiA+IE9uIE1vbiwg
SmFuIDIwLCAyMDIwIGF0IDk6NDAgQU0gTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMu
b3JnPgo+IHdyb3RlOgo+ID4gPiA+IC4uLiBBbHRlcm5hdGl2ZWx5IEkgY2FuIHR1cm4gaXQgaW50
byBwcm9wZXIgZGV2aWNlIHBsdWdpbgo+IGFyY2hpdGVjdHVyZS4KPiA+ID4gPiBJcyB0aGF0IHlv
dXIgcHJlZmVycmVkIHdheSB0byBnbz8gKHdoaWxlIGRvaW5nIHRoYXQgSSB3b3VsZCBhbHNvIGFk
ZAo+ID4gPiA+IHN1cHBvcnQgZm9yIGV4dGVybmFsIGV2ZW4gbG9vcHMpCj4gPiA+Cj4gPiA+IFll
cywgaWYgd2UncmUgZ29pbmcgdG8gY2hhbmdlIHRoYXQgbGV0J3MgZG8gaXQgaW4gYSBwcm9wZXIg
d2F5LiBIYXBweSB0bwo+ID4gPiBkaXNjdXNzIG9uIElSQyBzb21ldGltZS4KPiA+Cj4gPiBZb3Vy
IElSQyBjb25uZWN0aW9uIGlzIHVuc3RhYmxlIGJleW9uZCBiZWluZyB1c2VmdWxsIGZvciBhbnkg
ZGlzY3Vzc2lvbgo+IDstKQo+IAo+IEknbSB0cmF2ZWxsaW5nIGEgbG90IGR1cmluZyBhIHdlZWsu
IFdlZWtlbmRzIGFyZSBtb3JlIHBlYWNlZnVsIDopCj4gCj4gPiBTbyBoZXJlIGlzIGEgcXVpY2sg
ZHJhZnQsIHBhdGNoIGlzIGJhc2VkIG9uIGFub3RoZXIgdW5yZWxlYXNlZCBvbmUgbW92aW5nCj4g
PiBkZXZpY2Vfc2NyaXB0IGludG8gc2VwYXJhdGUgZmlsZS4gUGxlYXNlIG5vdGUgaXQgaXMgb25s
eSBhIGRyYWZ0LCBjb21waWxlCj4gPiB0ZXN0ZWQgb25seSAoYXNzdW1lcyBDOTkgY29tcGlsZXIp
LiBJIHRyaWVkIHRvIGF2b2lkIGRldmljZSBkcml2ZXIKPiBjaGFuZ2VzLAo+ID4gYnV0IHBhdGNo
IGlzIHN0aWxsIGEgYml0IGhhcmQgdG8gcmVhZC4gQXBvbG9naWVzIGZvciB0aGF0LiBIb3dldmVy
LCBpdAo+ID4gc2hvdWxkIHN1ZmZpY2UgYXMgYSBiZWdpbm5pbmcgb2YgYSBkaXNjdXNzaW9uLiBJ
J2xsIHBvbGlzaCBpdCBhIGJpdCBtb3JlCj4gPiBiYXNlZCBvbiBmZWVkYmFjayByZWNlaXZlZCBh
bmQgc2VuZCBhcyBzZXBhcmF0ZSBwYXRjaCBzZXJpZS4KPiAKPiBMb29rcyBnb29kLiBTb21lIG1p
bm9yIHN0dWZmIGJlbG93Lgo+IAo+ID4gK2NvbnN0IHN0YXRpYyBnbl9kZXZpY2Vfb3BzIF9ibHVl
dG9vdGhfb3BzID0gewo+ID4gKyAgICAgICAub3BlbiAgID0gX2JsdWV0b290aF9vcGVuLAo+IAo+
IFdoeSBqdXN0IG9wZW4gd2l0aCBfIHByZWZpeD8gT3ZlcmFsbCBxdWVzdGlvbiBmb3Igb3RoZXIg
cGxhY2VzIGFzIHdlbGwuCgpJdCB3b3VsZCBiZSBtb3JlIGNvbnZlbmllbnQgdG8gaGF2ZSBhbGwg
ZGV2aWNlIGZ1bmN0aW9ucyB3aXRoIHRoZSBzYW1lCnByb3RvdHlwZS4gSXQgaXMgbm90IHRoZSBj
YXNlICh5ZXQpIGFuZCBJIHdhbnRlZCB0byBoYXZlIHBsdWdpbiBjaGFuZ2UKaXNvbGF0ZWQgd2l0
aG91dCB0b3VjaGluZyBkZXZpY2UgZHJpdmVycy4KClNvIEkganVzdCBpbnRyb2R1Y2VkIF8gcHJl
Zml4ZWQgdmFyaWFudHMgdG8ga2VlcCBjaGFuZ2UgaW4gb25lIHBsYWNlLgpMYXRlciB3ZSBjYW4g
dW5pZnkgZHJpdmVyIGZ1bmN0aW9ucyB0byB1c2UgdGhlIHNhbWUgcHJvdG90eXBlIGFuZAp0aGlz
IHdpbGwgZ28gYXdheS4gU28gaXQgY2FuIGhhdmUgYW55IG5hbWUsIGZlZWwgZnJlZSB0byBzdWdn
ZXN0CnNvbWV0aGluZyBiZXR0ZXIuCgo+ID4gKyAgICAgICAuY2xvc2UgID0gYmx1ZXRvb3RoX2Ns
b3NlLAo+ID4gKyAgICAgICAuc2VsZWN0ID0gYmx1ZXRvb3RoX3NlbGVjdCwKPiA+ICsgICAgICAg
LnJlYWQgICA9IGJsdWV0b290aF9yZWFkLAo+ID4gKyAgICAgICAud3JpdGUgID0gYmx1ZXRvb3Ro
X3dyaXRlLAo+ID4gK307Cj4gCj4gPiAgZ25fZXJyb3IgZGV2aWNlX25yZWNlaXZlZChpbnQgKm4s
IHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0YXRlKQo+IFsuLi5dCj4gPiArICAgICAgIHJldHVy
biBzdGF0ZS0+ZGV2aWNlLm9wcy0+bnJjdmQoc3RhdGUtPmRldmljZS5mZCwgbiwgc3RhdGUpOwo+
IAo+IEkgd291bGQgbGVhdmUgbmFtaW5nIGNvbnNpc3RlbnQgbGlrZSBucmVjZWl2ZWQgZXZlcnl3
aGVyZS4gSXQgYXBwbGllcyBub3QKPiBqdXN0IGhlcmUuCgpJdCB3YXMgdGhlcmUsIGJ1dCBpdCBp
cyB0b28gbG9uZyB0byBoYXZlIGRldmljZV9vcHMgYWJvdmUgbmljZWx5IGFsaWduZWQuClRoaXMg
d2F5IGFsbCBvcHMgbmFtZXMgYXJlIGFib3V0IHRoZSBzYW1lIGxlbmdodC4gSWYgeW91IHByZWZl
ciBsb25nZXIKdmFyaWFudCwgbGV0J3MgY2hhbmdlIHRoYXQuCgo+ID4gK2RubCA9PT09PT09PT09
PT09PT09PT09PT09PT0gRGVmaW5lcyBsb2NhdGlvbiBmb3IgZ2V0dGV4dAo+ID4gK0FDX0FSR19X
SVRIKGdldHRleHQsCj4gPiArICAgICAgIFsgIC0td2l0aC1nZXR0ZXh0PURJUiAgICAgIHNwZWNp
ZmllcyB0aGUgYmFzZSBnZXR0ZXh0XSwKPiA+ICsgICAgICAgWyBpZiB0ZXN0IHgkd2l0aHZhbCA9
IHh5ZXM7IHRoZW4KPiA+ICsgICAgICAgICAgICAgICBBQ19NU0dfV0FSTihVc2FnZSBpczogLS13
aXRoLWdldHRleHQ9RElSKQo+ID4gKyAgICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICBD
RkxBR1M9IiRDRkxBR1MgLUkkd2l0aHZhbCIKPiA+ICsgICAgICAgICBmaQo+ID4gKyAgICAgICBd
Cj4gPiArKQo+ID4gKwo+IAo+IEhtPwo+IAo+ID4gK2RubCA9PT09PT09PT09PT09PT09PT09PT09
PT0gQ2hlY2tzIGZvciBnZXRob3N0YnluYW1lIHN1cHBvcnQKPiA+ICtBQ19DSEVDS19GVU5DKGdl
dGhvc3RieW5hbWUsICwKPiA+ICsgICAgICAgQUNfQ0hFQ0tfTElCKG5zbCwgZ2V0aG9zdGJ5bmFt
ZSwgVENQX0xJQlM9Ii1sbnNsIgo+ID4gKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoVENQ
X0xJQlMpKSkKPiA+ICtkbmwgSGFpa3UgcmVxdWlyZXMgLWxuZXR3b3JrIGZvciBzb2NrZXQgZnVu
Y3Rpb25zCj4gPiArQUNfQ0hFQ0tfRlVOQyhnZXRob3N0YnluYW1lLCAsCj4gPiArICAgICAgIEFD
X0NIRUNLX0xJQihuZXR3b3JrLCBnZXRob3N0YnluYW1lLCBUQ1BfTElCUz0iLWxuZXR3b3JrIgo+
ID4gKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoVENQX0xJQlMpKSkKPiA+ICsKPiAKPiBI
bT8KPiAKPiA+IC1pZiB0ZXN0ICIkZW5hYmxlX3Bob25ldCIgPSAieWVzIjsgdGhlbgo+ID4gLSAg
ICAgICBBQ19DSEVDS19IRUFERVIobGludXgvcGhvbmV0LmgsCj4gPiAtICAgICAgICAgICAgICAg
W0FDX0RFRklORShIQVZFX1NPQ0tFVFBIT05FVCwgMSwgW1doZXRoZXIgUGhvbmV0IGlzCj4gYXZh
aWxhYmxlXSkKPiA+IC0gICAgICAgICAgICAgICAgVVNFX1NPQ0tFVFBIT05FVD0ieWVzIl0sLAo+
ID4gLSAgICAgICAgICAgICAgIFsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgo+ID4gLSAgICAgICAg
ICAgICAgICAjaW5jbHVkZSA8bGludXgvcGhvbmV0Lmg+XSkKPiA+IC1maQo+IAo+IFdoeT8KClNl
ZSBiZWxsb3cgZm9yIGFsbCBIbSBhbmQgV2h5IHBhcnQuCgo+ID4gLWRubCA9PT09PT09PT09PT09
PT09PT09PT09PT0gQ2hlY2tzIGZvciBnZXRob3N0YnluYW1lIHN1cHBvcnQKPiA+IC1BQ19DSEVD
S19GVU5DKGdldGhvc3RieW5hbWUsICwKPiA+IC0gICAgICAgQUNfQ0hFQ0tfTElCKG5zbCwgZ2V0
aG9zdGJ5bmFtZSwgVENQX0xJQlM9Ii1sbnNsIgo+ID4gLSAgICAgICAgICAgICAgICAgICAgQUNf
U1VCU1QoVENQX0xJQlMpKSkKPiA+IC1kbmwgSGFpa3UgcmVxdWlyZXMgLWxuZXR3b3JrIGZvciBz
b2NrZXQgZnVuY3Rpb25zCj4gPiAtQUNfQ0hFQ0tfRlVOQyhnZXRob3N0YnluYW1lLCAsCj4gPiAt
ICAgICAgIEFDX0NIRUNLX0xJQihuZXR3b3JrLCBnZXRob3N0YnluYW1lLCBUQ1BfTElCUz0iLWxu
ZXR3b3JrIgo+ID4gLSAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoVENQX0xJQlMpKSkKPiA+
IC0KPiAKPiBPSywgc28gdGhpcyBwYXJ0IGlzIGp1c3QgYmVpbmcgbW92ZWQuLi4KPiAKPiA+IC1p
ZiB0ZXN0ICIkZW5hYmxlX2lyZGEiID0gInllcyI7IHRoZW4KPiA+IC0gICAgICAgQUNfQ0hFQ0tf
SEVBREVSKGxpbnV4L2lyZGEuaCwKPiA+IC0gICAgICAgICAgICAgICBbQUNfREVGSU5FKEhBVkVf
SVJEQSwgMSwgW1doZXRoZXIgSXJEQSBpcyBhdmFpbGFibGVdKQo+ID4gLSAgICAgICAgICAgICAg
ICBVU0VfSVJEQT0ieWVzIl0sLAo+ID4gLSAgICAgICAgICAgICAgIFsjaW5jbHVkZSA8c3lzL3Nv
Y2tldC5oPgo+ID4gLSAgICAgICAgICAgICAgICAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cj4gPiAt
ICAgICAgICAgICAgICAgICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPl0pCj4gPiAtZmkKPiAKPiBX
aHk/Cj4gCj4gPiAtZG5sID09PT09PT09PT09PT09PT09PT09PT09PSBEZWZpbmVzIGxvY2F0aW9u
IGZvciBnZXR0ZXh0Cj4gPiAtQUNfQVJHX1dJVEgoZ2V0dGV4dCwKPiA+IC0gICAgICAgWyAgLS13
aXRoLWdldHRleHQ9RElSICAgICAgc3BlY2lmaWVzIHRoZSBiYXNlIGdldHRleHRdLAo+ID4gLSAg
ICAgICBbIGlmIHRlc3QgeCR3aXRodmFsID0geHllczsgdGhlbgo+ID4gLSAgICAgICAgICAgICAg
IEFDX01TR19XQVJOKFVzYWdlIGlzOiAtLXdpdGgtZ2V0dGV4dD1ESVIpCj4gPiAtICAgICAgICAg
ZWxzZQo+ID4gLSAgICAgICAgICAgICAgIENGTEFHUz0iJENGTEFHUyAtSSR3aXRodmFsIgo+ID4g
LSAgICAgICAgIGZpCj4gPiAtICAgICAgIF0KPiA+IC0pCj4gCj4gT0ssIHNvIHRoaXMgcGFydCBp
cyBqdXN0IGJlaW5nIG1vdmVkLgoKU25pcGV0cyBhcmUgc2h1ZmZsZWQgYXJvdW5kIHRvIGhhdmUg
YWxsIGRldmljZSBjaGVja3MgaW4gb25lIHBsYWNlCmFuZCB0aGUgcmVzdCBhdCBhbm90aGVyLiBO
byBwcm9ibGVtIGRyb3BwaW5nIHRoYXQgY2hhbmdlIG9yIGhhdmluZwpzZXBhcmF0ZSBwYXRjaCBm
b3IgaXQuCgo+ID4gLXZvaWQgZGV2aWNlX3Jlc2V0KHN0cnVjdCBnbl9zdGF0ZW1hY2hpbmUgKnN0
YXRlKTsKPiAKPiBXaHk/CgpUaGlzIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGFueXdoZXJlLiBQZXJo
YXBzIGJhc2UgZGV2aWNlIGNoYW5nZSBvbiBzb21lCnByZXBhcmF0aW9uIGNsZWFudXAgcGF0Y2hl
cyB3b3VsZCBtYWtlIHlvdSBtb3JlIGhhcHB5IDopCgo+ID4gIHR5cGVkZWYgc3RydWN0IHsKPiA+
ICAgICAgICAgaW50IGZkOwo+ID4gLSAgICAgICBnbl9jb25uZWN0aW9uX3R5cGUgdHlwZTsKPiAK
PiBXb24ndCB3ZSBuZWVkIGl0IGFueW1vcmU/CgpObywgd2UgaGF2ZSBkZXZpY2Vfb3BzIG5vdy4g
QWxzbyBpdCB3b3VsZCBhbGxvdyB1cyB0byByZW1vdmUgYWxsIHN0dWZmIGxpa2UKKGZidXNfc2Vy
aWFsX29wZW4pOgogICAgICAgIGlmIChzdGF0ZS0+Y29uZmlnLmNvbm5lY3Rpb25fdHlwZSA9PSBH
Tl9DVF9UQ1ApCiAgICAgICAgICAgICAgICB0eXBlID0gR05fQ1RfVENQOwogICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgIHR5cGUgPSBHTl9DVF9TZXJpYWw7CmFzIHdlIGhhbmRsZSBhbGwgZGV2
aWNlcyBjb25zaXN0ZW50bHkgbm93LgoKPiA+ICsgICAgICAgY29uc3QgZ25fZGV2aWNlX29wcyAq
b3BzOwo+ID4gICAgICAgICB2b2lkICpkZXZpY2VfaW5zdGFuY2U7Cj4gPiAgfSBnbl9kZXZpY2U7
Cj4gCj4gQ2hlZXJzLAo+IC0tCj4gUGF3ZWwgS290Cgo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCj4gZ25va2lpLXVzZXJzIG1haWxpbmcgbGlzdAo+IGdu
b2tpaS11c2Vyc0Bub25nbnUub3JnCj4gaHR0cHM6Ly9saXN0cy5ub25nbnUub3JnL21haWxtYW4v
bGlzdGluZm8vZ25va2lpLXVzZXJzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KZ25va2lpLXVzZXJzIG1haWxpbmcgbGlzdApnbm9raWktdXNlcnNAbm9u
Z251Lm9yZwpodHRwczovL2xpc3RzLm5vbmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9nbm9raWkt
dXNlcnMK