From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 7/8] os-posix: Provide new -runas . facility Date: Thu, 19 Oct 2017 17:51:55 +0100 Message-ID: <1508431916-9412-8-git-send-email-ian.jackson@eu.citrix.com> References: <1508431916-9412-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e5E3j-0007aZ-JU for xen-devel@lists.xenproject.org; Thu, 19 Oct 2017 16:52:39 +0000 In-Reply-To: <1508431916-9412-1-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Juergen Gross , Stefano Stabellini , Ian Jackson , Ross Lagerwall , Anthony PERARD , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org VGhpcyBhbGxvd3MgdGhlIGNhbGxlciB0byBzcGVjaWZ5IGEgdWlkIGFuZCBnaWQgdG8gdXNlLCBl dmVuIGlmIHRoZXJlCmlzIG5vIGNvcnJlc3BvbmRpbmcgcGFzc3dvcmQgZW50cnkuICBUaGlzIHdp bGwgYmUgdXNlZnVsIGluIGNlcnRhaW4KWGVuIGNvbmZpZ3VyYXRpb25zLgoKV2UgZG9uJ3Qgc3Vw cG9ydCBqdXN0IC1ydW5hcyA8dWlkPiBiZWNhdXNlOiAoaSkgZGVwcml2aWxlZ2luZyB3aXRob3V0 CmNhbGxpbmcgc2V0Z3JvdXBzIHdvdWxkIGJlIGluZWZmZWN0aXZlIChpaSkgZ2l2ZW4gb25seSBh IHVpZCB3ZSBkb24ndAprbm93IHdoYXQgZ2lkIHdlIG91Z2h0IHRvIHVzZSAoc2luY2UgdWlkcyBt YXkgZXBwZWFyIGluIG11bHRpcGxlCnBhc3N3ZCBmaWxlIGVudHJpZXMgd2l0aCBkaWZmZXJlbnQg Z2lkcykuCgpTaWduZWQtb2ZmLWJ5OiBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25AZXUuY2l0cml4 LmNvbT4KLS0tCnY0OiBDaGFuZ2VkIHRvIHJldXNlIG9wdGlvbiAtcnVuYXMKdjM6IEVycm9yIG1l c3NhZ2VzIGZpeGVkLiAgVGhhbmtzIHRvIFBldGVyIE1heWRlbGwgYW5kIFJvc3MgTGFnZXJ3YWxs Lgp2MjogQ29kaW5nIHN0eWxlIGZpeGVzLgotLS0KIG9zLXBvc2l4LmMgICAgICB8IDY0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogcWVt dS1vcHRpb25zLmh4IHwgIDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL29zLXBvc2l4LmMgYi9vcy1wb3NpeC5jCmlu ZGV4IDkyZTlkODUuLjk0MThiZDQgMTAwNjQ0Ci0tLSBhL29zLXBvc2l4LmMKKysrIGIvb3MtcG9z aXguYwpAQCAtNDMsNiArNDMsOCBAQAogI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgcGFzc3dkICp1 c2VyX3B3ZDsKK3N0YXRpYyB1aWRfdCB1c2VyX3VpZCA9ICh1aWRfdCktMTsKK3N0YXRpYyBnaWRf dCB1c2VyX2dpZCA9IChnaWRfdCktMTsKIHN0YXRpYyBjb25zdCBjaGFyICpjaHJvb3RfZGlyOwog c3RhdGljIGludCBkYWVtb25pemU7CiBzdGF0aWMgaW50IGRhZW1vbl9waXBlOwpAQCAtMTI4LDYg KzEzMCwzNCBAQCB2b2lkIG9zX3NldF9wcm9jX25hbWUoY29uc3QgY2hhciAqcykKICNlbmRpZgog fQogCisKK3N0YXRpYyBib29sIG9zX3BhcnNlX3J1bmFzX3VpZF9naWQoY29uc3QgY2hhciAqb3B0 YXJnKQoreworICAgIHVuc2lnbmVkIGxvbmcgbHY7CisgICAgY2hhciAqZXA7CisgICAgdWlkX3Qg Z290X3VpZDsKKyAgICBnaWRfdCBnb3RfZ2lkOworICAgIGludCByYzsKKworICAgIGVycm5vID0g MDsKKyAgICBsdiA9IHN0cnRvdWwob3B0YXJnLCAmZXAsIDApOyAvKiBjYW4ndCBxZW11X3N0cnRv dWwsIHdhbnQgKmVwPT0nLicgKi8KKyAgICBnb3RfdWlkID0gbHY7IC8qIG92ZXJmbG93IGhlcmUg aXMgSUQgaW4gQzk5ICovCisgICAgaWYgKGVycm5vIHx8ICplcCAhPSAnLicgfHwgZ290X3VpZCAh PSBsdiB8fCBnb3RfdWlkID09ICh1aWRfdCktMSkgeworICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgfQorCisgICAgbHYgPSAwOworICAgIHJjID0gcWVtdV9zdHJ0b3VsKGVwICsgMSwgMCwgMCwg Jmx2KTsKKyAgICBnb3RfZ2lkID0gbHY7IC8qIG92ZXJmbG93IGhlcmUgaXMgSUQgaW4gQzk5ICov CisgICAgaWYgKHJjIHx8IGdvdF9naWQgIT0gbHYgfHwgZ290X2dpZCA9PSAoZ2lkX3QpLTEpIHsK KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHVzZXJfdWlkID0gZ290X3VpZDsK KyAgICB1c2VyX2dpZCA9IGdvdF9naWQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBQ YXJzZSBPUyBzcGVjaWZpYyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAqIHJldHVybiAwIGlmIG9w dGlvbiBoYW5kbGVkLCAtMSBvdGhlcndpc2UKQEAgLTE0NSw4ICsxNzUsMTAgQEAgdm9pZCBvc19w YXJzZV9jbWRfYXJncyhpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKm9wdGFyZykKICNlbmRpZgogICAg IGNhc2UgUUVNVV9PUFRJT05fcnVuYXM6CiAgICAgICAgIHVzZXJfcHdkID0gZ2V0cHduYW0ob3B0 YXJnKTsKLSAgICAgICAgaWYgKCF1c2VyX3B3ZCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRl cnIsICJVc2VyIFwiJXNcIiBkb2Vzbid0IGV4aXN0XG4iLCBvcHRhcmcpOworICAgICAgICBpZiAo IXVzZXJfcHdkICYmICFvc19wYXJzZV9ydW5hc191aWRfZ2lkKG9wdGFyZykpIHsKKyAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAiVXNlciBcIiVzXCIgZG9l c24ndCBleGlzdCAoYW5kIGlzIG5vdCA8dWlkPi48Z2lkPilcbiIsCisgICAgICAgICAgICAgICAg ICAgIG9wdGFyZyk7CiAgICAgICAgICAgICBleGl0KDEpOwogICAgICAgICB9CiAgICAgICAgIGJy ZWFrOwpAQCAtMTY2LDE4ICsxOTgsMjggQEAgdm9pZCBvc19wYXJzZV9jbWRfYXJncyhpbnQgaW5k ZXgsIGNvbnN0IGNoYXIgKm9wdGFyZykKIAogc3RhdGljIHZvaWQgY2hhbmdlX3Byb2Nlc3NfdWlk KHZvaWQpCiB7Ci0gICAgaWYgKHVzZXJfcHdkKSB7Ci0gICAgICAgIGlmIChzZXRnaWQodXNlcl9w d2QtPnB3X2dpZCkgPCAwKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0 byBzZXRnaWQoJWQpXG4iLCB1c2VyX3B3ZC0+cHdfZ2lkKTsKKyAgICBpZiAodXNlcl9wd2QgfHwg dXNlcl91aWQgIT0gKHVpZF90KS0xKSB7CisgICAgICAgIGdpZF90IGludGVuZGVkX2dpZCA9IHVz ZXJfcHdkID8gdXNlcl9wd2QtPnB3X2dpZCA6IHVzZXJfZ2lkOworICAgICAgICB1aWRfdCBpbnRl bmRlZF91aWQgPSB1c2VyX3B3ZCA/IHVzZXJfcHdkLT5wd191aWQgOiB1c2VyX3VpZDsKKyAgICAg ICAgaWYgKHNldGdpZChpbnRlbmRlZF9naWQpIDwgMCkgeworICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsICJGYWlsZWQgdG8gc2V0Z2lkKCVkKVxuIiwgaW50ZW5kZWRfZ2lkKTsKICAgICAgICAg ICAgIGV4aXQoMSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGluaXRncm91cHModXNlcl9wd2Qt PnB3X25hbWUsIHVzZXJfcHdkLT5wd19naWQpIDwgMCkgewotICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsICJGYWlsZWQgdG8gaW5pdGdyb3VwcyhcIiVzXCIsICVkKVxuIiwKLSAgICAgICAgICAg ICAgICAgICAgdXNlcl9wd2QtPnB3X25hbWUsIHVzZXJfcHdkLT5wd19naWQpOwotICAgICAgICAg ICAgZXhpdCgxKTsKKyAgICAgICAgaWYgKHVzZXJfcHdkKSB7CisgICAgICAgICAgICBpZiAoaW5p dGdyb3Vwcyh1c2VyX3B3ZC0+cHdfbmFtZSwgdXNlcl9wd2QtPnB3X2dpZCkgPCAwKSB7CisgICAg ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gaW5pdGdyb3VwcyhcIiVzXCIs ICVkKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfcHdkLT5wd19uYW1lLCB1c2Vy X3B3ZC0+cHdfZ2lkKTsKKyAgICAgICAgICAgICAgICBleGl0KDEpOworICAgICAgICAgICAgfQor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNldGdyb3VwcygxLCAmdXNlcl9naWQp IDwgMCkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHNldGdy b3VwcygxLCBbJWRdKSIsCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2dpZCk7CisgICAg ICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBp ZiAoc2V0dWlkKHVzZXJfcHdkLT5wd191aWQpIDwgMCkgewotICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsICJGYWlsZWQgdG8gc2V0dWlkKCVkKVxuIiwgdXNlcl9wd2QtPnB3X3VpZCk7CisgICAg ICAgIGlmIChzZXR1aWQoaW50ZW5kZWRfdWlkKSA8IDApIHsKKyAgICAgICAgICAgIGZwcmludGYo c3RkZXJyLCAiRmFpbGVkIHRvIHNldHVpZCglZClcbiIsIGludGVuZGVkX3VpZCk7CiAgICAgICAg ICAgICBleGl0KDEpOwogICAgICAgICB9CiAgICAgICAgIGlmIChzZXR1aWQoMCkgIT0gLTEpIHsK ZGlmZiAtLWdpdCBhL3FlbXUtb3B0aW9ucy5oeCBiL3FlbXUtb3B0aW9ucy5oeAppbmRleCA5ZjZl MmFkLi5iZGZmOTlmIDEwMDY0NAotLS0gYS9xZW11LW9wdGlvbnMuaHgKKysrIGIvcWVtdS1vcHRp b25zLmh4CkBAIC0zOTU4LDcgKzM5NTgsOCBAQCBFVEVYSQogCiAjaWZuZGVmIF9XSU4zMgogREVG KCJydW5hcyIsIEhBU19BUkcsIFFFTVVfT1BUSU9OX3J1bmFzLCBcCi0gICAgIi1ydW5hcyB1c2Vy ICAgICBjaGFuZ2UgdG8gdXNlciBpZCB1c2VyIGp1c3QgYmVmb3JlIHN0YXJ0aW5nIHRoZSBWTVxu IiwKKyAgICAiLXJ1bmFzIHVzZXIgICAgIGNoYW5nZSB0byB1c2VyIGlkIHVzZXIganVzdCBiZWZv cmUgc3RhcnRpbmcgdGhlIFZNXG4iIFwKKyAgICAiICAgICAgICAgICAgICAgIHVzZXIgY2FuIGJl IG51bWVyaWMgdWlkLmdpZCBpbnN0ZWFkXG4iLAogICAgIFFFTVVfQVJDSF9BTEwpCiAjZW5kaWYK IFNURVhJCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=