From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 4/9] libxl: Move check for local access to a funciton Date: Thu, 24 Mar 2016 17:22:35 +0000 Message-ID: <1458840160-26733-5-git-send-email-george.dunlap@citrix.com> References: <1458840160-26733-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458840160-26733-1-git-send-email-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: George Dunlap , Ian Jackson , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKTW92ZSBw eWdydWIgY2hlY2tzIGZvciBsb2NhbCBhY2Nlc3MgYWJpbGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVu Y3Rpb24uCgpBbHNvIHJlb3JnYW5pemUgbGlieGxfX2RldmljZV9kaXNrX2xvY2FsX2luaXRpYXRl X2F0dGFjaCBzbyB0aGF0IHdlCmRvbid0IGluaXRpYWxpemUgZGxzLT5kaXNrIHVubGVzcyB3ZSBh Y3R1YWxseSBlbmQgdXAgZG9pbmcgYSBsb2NhbAphdHRhY2guCgpTaWduZWQtb2ZmLWJ5OiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+Ci0tLQpDaGFuZ2VzIHNpbmNl IHYxOgotIFN0eWxpc3RpYyB1cGRhdGVzCiAtIE5vIHNwYWNlIGJldHdlZW4gKiBhbmQgZnVuY3Rp b24gbmFtZSBpbiBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoCiAtIHsgb24gc3Rh cnQgb2YgbmV3bGluZSBmb3IgZnVuY3Rpb24KIC0gTG9uZyBsaW5lIG5vdyB1bmRlciA4MCBjaGFy YWN0ZXJzCiAtIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgZm9yIHBkZXZfcGF0aAogLSBTcGFjZSBi ZXR3ZWVuIGlmIGFuZCBjb25kaXRpb24KIC0gQXZvaWQgaWYgKCh4PS4uLikpIGNvbnN0cnVjdGlv bgoKQ0M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uZSA8cm9nZXIucGF1QGNpdHJp eC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGwuYyB8IDY3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDcgaW5z ZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGli eGwuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmMKaW5kZXggOTNmNTBkMy4uMmQ3YTE1NCAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGwuYworKysgYi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC0z MDAwLDEzICszMDAwLDM4IEBAIHN0YXRpYyBjaGFyICogbGlieGxfX2FsbG9jX3ZkZXYobGlieGxf X2djICpnYywgdm9pZCAqZ2V0X3ZkZXZfdXNlciwKIAogLyogQ2FsbGJhY2tzICovCiAKK3N0YXRp YyBjaGFyICpsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGxpYnhsX19nYyAqZ2Ms IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGlieGxfZGV2aWNlX2Rpc2sgKmRpc2spCit7CisgICAgY2hhciAqcGF0aCA9IE5VTEw7CisKKyAg ICAvKiBObyBsb2NhbCBwYXRocyBmb3IgZHJpdmVyIGRvbWFpbnMgKi8KKyAgICBpZiAoZGlzay0+ YmFja2VuZF9kb21uYW1lICE9IE5VTEwpIHsKKyAgICAgICAgTE9HKERFQlVHLCAiTm9uLWxvY2Fs IGJhY2tlbmQsIGNhbid0IGFjY2VzcyBsb2NhbGx5LlxuIik7CisgICAgICAgIGdvdG8gb3V0Owor ICAgIH0KKworICAgIC8qCisgICAgICogSWYgdGhpcyBpcyBpbiByYXcgZm9ybWF0LCBhbmQgd2Un cmUgbm90IHVzaW5nIGEgc2NyaXB0IG9yIGEKKyAgICAgKiBkcml2ZXIgZG9tYWluLCB3ZSBjYW4g YWNjZXNzIHRoZSB0YXJnZXQgcGF0aCBkaXJlY3RseS4KKyAgICAgKi8KKyAgICBpZiAoZGlzay0+ Zm9ybWF0ID09IExJQlhMX0RJU0tfRk9STUFUX1JBVworICAgICAgICAmJiBkaXNrLT5zY3JpcHQg PT0gTlVMTCkgeworICAgICAgICBwYXRoID0gbGlieGxfX3N0cmR1cChnYywgZGlzay0+cGRldl9w YXRoKTsKKyAgICAgICAgTE9HKERFQlVHLCAiRGlyZWN0bHkgYWNjZXNzaW5nIGxvY2FsIFJBVyBk aXNrICVzIiwgcGF0aCk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0gCisKKyBvdXQ6CisgICAg cmV0dXJuIHBhdGg7Cit9CisKIHN0YXRpYyB2b2lkIGxvY2FsX2RldmljZV9hdHRhY2hfY2IobGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9fYW9fZGV2aWNlICphb2Rldik7CiAKIHZvaWQgbGlieGxfX2Rl dmljZV9kaXNrX2xvY2FsX2luaXRpYXRlX2F0dGFjaChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Rpc2tfbG9jYWxfc3RhdGUgKmRs cykKIHsKICAgICBTVEFURV9BT19HQyhkbHMtPmFvKTsKLSAgICBjaGFyICpkZXYgPSBOVUxMOwog ICAgIGludCByYzsKICAgICBjb25zdCBsaWJ4bF9kZXZpY2VfZGlzayAqaW5fZGlzayA9IGRscy0+ aW5fZGlzazsKICAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzayA9ICZkbHMtPmRpc2s7CkBAIC0z MDE0LDM0ICszMDM5LDM2IEBAIHZvaWQgbGlieGxfX2RldmljZV9kaXNrX2xvY2FsX2luaXRpYXRl X2F0dGFjaChsaWJ4bF9fZWdjICplZ2MsCiAKICAgICBhc3NlcnQoaW5fZGlzay0+cGRldl9wYXRo KTsKIAotICAgIG1lbWNweShkaXNrLCBpbl9kaXNrLCBzaXplb2YobGlieGxfZGV2aWNlX2Rpc2sp KTsKLSAgICBkaXNrLT5wZGV2X3BhdGggPSBsaWJ4bF9fc3RyZHVwKGdjLCBpbl9kaXNrLT5wZGV2 X3BhdGgpOwotICAgIGlmIChpbl9kaXNrLT5zY3JpcHQgIT0gTlVMTCkKLSAgICAgICAgZGlzay0+ c2NyaXB0ID0gbGlieGxfX3N0cmR1cChnYywgaW5fZGlzay0+c2NyaXB0KTsKICAgICBkaXNrLT52 ZGV2ID0gTlVMTDsKIAotICAgIHJjID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRlZmF1bHQoZ2Ms IGRpc2spOwotICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgaWYgKGRscy0+ZGlza3BhdGgpCisg ICAgICAgIExPRyhERUJVRywgIlN0cmFuZ2UsIGRscy0+ZGlza3BhdGggYWxyZWFkeSBzZXQ6ICVz IiwgZGxzLT5kaXNrcGF0aCk7CiAKLSAgICAvKiBJZiB0aGlzIGlzIGluIGEgZHJpdmVyIGRvbWFp biwgb3IgaXQncyBub3QgYSByYXcgZm9ybWF0LCBvciBpdCBpbnZvbHZlcwotICAgICAqIHJ1bm5p bmcgYSBzY3JpcHQsIHdlIGhhdmUgdG8gZG8gYSBsb2NhbCBhdHRhY2guICovCi0gICAgaWYgKGRp c2stPmJhY2tlbmRfZG9tbmFtZSAhPSBOVUxMCi0gICAgICAgIHx8IGRpc2stPmZvcm1hdCAhPSBM SUJYTF9ESVNLX0ZPUk1BVF9SQVcKLSAgICAgICAgfHwgZGlzay0+c2NyaXB0ICE9IE5VTEwpIHsK KyAgICBMT0coREVCVUcsICJUcnlpbmcgdG8gZmluZCBsb2NhbCBwYXRoIik7CisKKyAgICBkbHMt PmRpc2twYXRoID0gbGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChnYywgaW5fZGlz ayk7CisgICAgaWYgKGRscy0+ZGlza3BhdGgpIHsKKyAgICAgICAgTE9HKERFQlVHLCAiTG9jYWwg cGF0aCBmb3VuZCwgZXhlY3V0aW5nIGNhbGxiYWNrLiIpOworICAgICAgICBkbHMtPmNhbGxiYWNr KGVnYywgZGxzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBMT0coREVCVUcsICJMb2NhbCBw YXRoIG5vdCBmb3VuZCwgaW5pdGlhdGluZyBhdHRhY2guIik7CisKKyAgICAgICAgbWVtY3B5KGRp c2ssIGluX2Rpc2ssIHNpemVvZihsaWJ4bF9kZXZpY2VfZGlzaykpOworICAgICAgICBkaXNrLT5w ZGV2X3BhdGggPSBsaWJ4bF9fc3RyZHVwKGdjLCBpbl9kaXNrLT5wZGV2X3BhdGgpOworICAgICAg ICBpZiAoaW5fZGlzay0+c2NyaXB0ICE9IE5VTEwpCisgICAgICAgICAgICBkaXNrLT5zY3JpcHQg PSBsaWJ4bF9fc3RyZHVwKGdjLCBpbl9kaXNrLT5zY3JpcHQpOworICAgICAgICBkaXNrLT52ZGV2 ID0gTlVMTDsKKyAgICAgICAgCisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV9kaXNrX3NldGRl ZmF1bHQoZ2MsIGRpc2spOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIC8q IElmIHdlIGNhbid0IGZpbmQgYSBsb2NhbCBwYXRoLCBhdHRhY2ggaXQgKi8KICAgICAgICAgbGli eGxfX3ByZXBhcmVfYW9fZGV2aWNlKGFvLCAmZGxzLT5hb2Rldik7CiAgICAgICAgIGRscy0+YW9k ZXYuY2FsbGJhY2sgPSBsb2NhbF9kZXZpY2VfYXR0YWNoX2NiOwogICAgICAgICBkZXZpY2VfZGlz a19hZGQoZWdjLCBMSUJYTF9UT09MU1RBQ0tfRE9NSUQsIGRpc2ssICZkbHMtPmFvZGV2LAogICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FsbG9jX3ZkZXYsICh2b2lkICopIGJsa2Rldl9z dGFydCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBMT0coREVCVUcsICJsb2NhbGx5 IGF0dGFjaGluZyBSQVcgZGlzayAlcyIsIGRpc2stPnBkZXZfcGF0aCk7Ci0gICAgZGV2ID0gZGlz ay0+cGRldl9wYXRoOwotCi0gICAgaWYgKGRldiAhPSBOVUxMKQotICAgICAgICBkbHMtPmRpc2tw YXRoID0gbGlieGxfX3N0cmR1cChnYywgZGV2KTsKLQotICAgIGRscy0+Y2FsbGJhY2soZWdjLCBk bHMsIDApOwogICAgIHJldHVybjsKIAogIG91dDoKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK