From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v4 2/2] xen/blkback: rework connect_ring() to avoid inconsistent xenstore 'ring-page-order' set by malicious blkfront Date: Mon, 7 Jan 2019 09:18:01 +0000 Message-ID: References: <1546839359-5478-1-git-send-email-dongli.zhang@oracle.com> <1546839359-5478-2-git-send-email-dongli.zhang@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ggR2s-0005iZ-C2 for xen-devel@lists.xenproject.org; Mon, 07 Jan 2019 09:18:06 +0000 In-Reply-To: <1546839359-5478-2-git-send-email-dongli.zhang@oracle.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: 'Dongli Zhang' , "xen-devel@lists.xenproject.org" , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: "axboe@kernel.dk" , Roger Pau Monne , "konrad.wilk@oracle.com" List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IERvbmdsaSBaaGFuZyBbbWFpbHRv OmRvbmdsaS56aGFuZ0BvcmFjbGUuY29tXQo+IFNlbnQ6IDA3IEphbnVhcnkgMjAxOSAwNTozNgo+ IFRvOiB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IGxpbnV4LWJsb2NrQHZnZXIua2Vy bmVsLm9yZzsgbGludXgtCj4ga2VybmVsQHZnZXIua2VybmVsLm9yZwo+IENjOiBrb25yYWQud2ls a0BvcmFjbGUuY29tOyBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsKPiBh eGJvZUBrZXJuZWwuZGs7IFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+Cj4g U3ViamVjdDogW1BBVENIIHY0IDIvMl0geGVuL2Jsa2JhY2s6IHJld29yayBjb25uZWN0X3Jpbmco KSB0byBhdm9pZAo+IGluY29uc2lzdGVudCB4ZW5zdG9yZSAncmluZy1wYWdlLW9yZGVyJyBzZXQg YnkgbWFsaWNpb3VzIGJsa2Zyb250Cj4gCj4gVGhlIHhlbnN0b3JlICdyaW5nLXBhZ2Utb3JkZXIn IGlzIHVzZWQgZ2xvYmFsbHkgZm9yIGVhY2ggYmxrYmFjayBxdWV1ZSBhbmQKPiB0aGVyZWZvcmUg c2hvdWxkIGJlIHJlYWQgZnJvbSB4ZW5zdG9yZSBvbmx5IG9uY2UuIEhvd2V2ZXIsIGl0IGlzIG9i dGFpbmVkCj4gaW4gcmVhZF9wZXJfcmluZ19yZWZzKCkgd2hpY2ggbWlnaHQgYmUgY2FsbGVkIG11 bHRpcGxlIHRpbWVzIGR1cmluZyB0aGUKPiBpbml0aWFsaXphdGlvbiBvZiBlYWNoIGJsa2JhY2sg cXVldWUuCj4gCj4gSWYgdGhlIGJsa2Zyb250IGlzIG1hbGljaW91cyBhbmQgdGhlICdyaW5nLXBh Z2Utb3JkZXInIGlzIHNldCBpbiBkaWZmZXJlbnQKPiB2YWx1ZSBieSBibGtmcm9udCBldmVyeSB0 aW1lIGJlZm9yZSBibGtiYWNrIHJlYWRzIGl0LCB0aGlzIG1heSBlbmQgdXAgYXQKPiB0aGUgIldB Uk5fT04oaSAhPSAoWEVOX0JMS0lGX1JFUVNfUEVSX1BBR0UgKiBibGtpZi0+bnJfcmluZ19wYWdl cykpOyIgaW4KPiB4ZW5fYmxraWZfZGlzY29ubmVjdCgpIHdoZW4gZnJvbnRlbmQgaXMgZGVzdHJv eWVkLgo+IAo+IFRoaXMgcGF0Y2ggcmV3b3JrcyBjb25uZWN0X3JpbmcoKSB0byByZWFkIHhlbnN0 b3JlICdyaW5nLXBhZ2Utb3JkZXInIG9ubHkKPiBvbmNlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERv bmdsaSBaaGFuZyA8ZG9uZ2xpLnpoYW5nQG9yYWNsZS5jb20+Cj4gLS0tCj4gQ2hhbmdlZCBzaW5j ZSB2MToKPiAgICogY2hhbmdlIHRoZSBvcmRlciBvZiB4ZW5zdG9yZSByZWFkIGluIHJlYWRfcGVy X3JpbmdfcmVmcwo+ICAgKiB1c2UgeGVuYnVzX3JlYWRfdW5zaWduZWQoKSBpbiBjb25uZWN0X3Jp bmcoKQo+IAo+IENoYW5nZWQgc2luY2UgdjI6Cj4gICAqIHNpbXBsaWZ5IHRoZSBjb25kaXRpb24g Y2hlY2sgYXMgIihlcnIgIT0gMSAmJiBucl9ncmVmcyA+IDEpIgo+ICAgKiBhdm9pZCBzZXR0aW5n IGVyciBhcyAtRUlOVkFMIHRvIHJlbW92ZSBleHRyYSBvbmUgbGluZSBvZiBjb2RlCj4gCj4gQ2hh bmdlZCBzaW5jZSB2MzoKPiAgICogZXhpdCBhdCB0aGUgYmVnaW5uaW5nIGlmICFucl9ncmVmcwo+ ICAgKiBjaGFuZ2UgdGhlIGlmIHN0YXRlbWVudHMgdG8gYXZvaWQgdGVzdCAoZXJyICE9IDEpIHR3 aWNlCj4gICAqIGluaXRpYWxpemUgYSAnYmxraWYnIHN0YWNrIHZhcmlhYmxlIChyZWZlciB0byBQ QVRDSCAxLzIpCj4gCj4gIGRyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVuYnVzLmMgfCA3NiAr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAtLS0tLQo+ICAxIGZpbGUgY2hhbmdl ZCwgNDMgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVuYnVzLmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi0KPiBi bGtiYWNrL3hlbmJ1cy5jCj4gaW5kZXggYTRhYWRhYy4uYTJhY2JjOSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jCj4gKysrIGIvZHJpdmVycy9ibG9jay94 ZW4tYmxrYmFjay94ZW5idXMuYwo+IEBAIC05MjYsNyArOTI2LDcgQEAgc3RhdGljIGludCByZWFk X3Blcl9yaW5nX3JlZnMoc3RydWN0IHhlbl9ibGtpZl9yaW5nCj4gKnJpbmcsIGNvbnN0IGNoYXIg KmRpcikKPiAgCWludCBlcnIsIGksIGo7Cj4gIAlzdHJ1Y3QgeGVuX2Jsa2lmICpibGtpZiA9IHJp bmctPmJsa2lmOwo+ICAJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGJsa2lmLT5iZS0+ZGV2 Owo+IC0JdW5zaWduZWQgaW50IHJpbmdfcGFnZV9vcmRlciwgbnJfZ3JlZnMsIGV2dGNobjsKPiAr CXVuc2lnbmVkIGludCBucl9ncmVmcywgZXZ0Y2huOwo+IAo+ICAJZXJyID0geGVuYnVzX3NjYW5m KFhCVF9OSUwsIGRpciwgImV2ZW50LWNoYW5uZWwiLCAiJXUiLAo+ICAJCQkgICZldnRjaG4pOwo+ IEBAIC05MzYsNDMgKzkzNiwzOCBAQCBzdGF0aWMgaW50IHJlYWRfcGVyX3JpbmdfcmVmcyhzdHJ1 Y3QgeGVuX2Jsa2lmX3JpbmcKPiAqcmluZywgY29uc3QgY2hhciAqZGlyKQo+ICAJCXJldHVybiBl cnI7Cj4gIAl9Cj4gCj4gLQllcnIgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGV2LT5vdGhlcmVu ZCwgInJpbmctcGFnZS1vcmRlciIsICIldSIsCj4gLQkJCSAgJnJpbmdfcGFnZV9vcmRlcik7Cj4g LQlpZiAoZXJyICE9IDEpIHsKPiAtCQllcnIgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGlyLCAi cmluZy1yZWYiLCAiJXUiLAo+ICZyaW5nX3JlZlswXSk7Cj4gKwlucl9ncmVmcyA9IGJsa2lmLT5u cl9yaW5nX3BhZ2VzOwo+ICsKPiArCWlmICh1bmxpa2VseSghbnJfZ3JlZnMpKQo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBucl9ncmVmczsgaSsrKSB7Cj4gKwkJ Y2hhciByaW5nX3JlZl9uYW1lW1JJTkdSRUZfTkFNRV9MRU5dOwo+ICsKPiArCQlzbnByaW50Zihy aW5nX3JlZl9uYW1lLCBSSU5HUkVGX05BTUVfTEVOLCAicmluZy1yZWYldSIsIGkpOwo+ICsJCWVy ciA9IHhlbmJ1c19zY2FuZihYQlRfTklMLCBkaXIsIHJpbmdfcmVmX25hbWUsCj4gKwkJCQkgICAi JXUiLCAmcmluZ19yZWZbaV0pOwo+ICsKPiAgCQlpZiAoZXJyICE9IDEpIHsKPiAtCQkJZXJyID0g LUVJTlZBTDsKPiAtCQkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgInJlYWRpbmcgJXMvcmlu Zy1yZWYiLCBkaXIpOwo+IC0JCQlyZXR1cm4gZXJyOwo+IC0JCX0KPiAtCQlucl9ncmVmcyA9IDE7 Cj4gLQl9IGVsc2Ugewo+IC0JCXVuc2lnbmVkIGludCBpOwo+IC0KPiAtCQlpZiAocmluZ19wYWdl X29yZGVyID4geGVuX2Jsa2lmX21heF9yaW5nX29yZGVyKSB7Cj4gLQkJCWVyciA9IC1FSU5WQUw7 Cj4gLQkJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBlcnIsICIlcy9yZXF1ZXN0ICVkIHJpbmcgcGFn ZQo+IG9yZGVyIGV4Y2VlZCBtYXg6JWQiLAo+IC0JCQkJCSBkaXIsIHJpbmdfcGFnZV9vcmRlciwK PiAtCQkJCQkgeGVuX2Jsa2lmX21heF9yaW5nX29yZGVyKTsKPiAtCQkJcmV0dXJuIGVycjsKPiAr CQkJaWYgKG5yX2dyZWZzID09IDEpCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCXhlbmJ1c19kZXZf ZmF0YWwoZGV2LCBlcnIsICJyZWFkaW5nICVzLyVzIiwKPiArCQkJCQkgZGlyLCByaW5nX3JlZl9u YW1lKTsKClRoaXMgcGF0Y2ggbG9va3MgbXVjaCBiZXR0ZXIsIGJ1dCBJIGd1ZXNzIHlvdSBkb24n dCB3YW50IHRvIGJlIHVzaW5nICdlcnInIGluIHRoZSBhYm92ZSBjYWxsIGFzIGl0IHdpbGwgc3Rp bGwgYmUgc2V0IHRvIHdoYXRldmVyIHhlbmJ1c19zY2FuZigpIHJldHVybmVkLiBQcm9iYWJseSBu ZWF0ZXN0IHRvIGp1c3QgbGVhdmUgdGhlICJlcnIgPSAtRUlOVkFMIiBhbmQgInJldHVybiBlcnIi IGFsb25lLgoKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICsJfQo+IAo+IC0JCW5yX2dy ZWZzID0gMSA8PCByaW5nX3BhZ2Vfb3JkZXI7Cj4gLQkJZm9yIChpID0gMDsgaSA8IG5yX2dyZWZz OyBpKyspIHsKPiAtCQkJY2hhciByaW5nX3JlZl9uYW1lW1JJTkdSRUZfTkFNRV9MRU5dOwo+IC0K PiAtCQkJc25wcmludGYocmluZ19yZWZfbmFtZSwgUklOR1JFRl9OQU1FX0xFTiwgInJpbmctcmVm JXUiLAo+IGkpOwo+IC0JCQllcnIgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGlyLCByaW5nX3Jl Zl9uYW1lLAo+IC0JCQkJCSAgICIldSIsICZyaW5nX3JlZltpXSk7Cj4gLQkJCWlmIChlcnIgIT0g MSkgewo+IC0JCQkJZXJyID0gLUVJTlZBTDsKPiAtCQkJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBl cnIsICJyZWFkaW5nICVzLyVzIiwKPiAtCQkJCQkJIGRpciwgcmluZ19yZWZfbmFtZSk7Cj4gLQkJ CQlyZXR1cm4gZXJyOwo+IC0JCQl9Cj4gKwlpZiAoZXJyICE9IDEpIHsKPiArCQlXQVJOX09OKG5y X2dyZWZzICE9IDEpOwo+ICsKPiArCQllcnIgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGlyLCAi cmluZy1yZWYiLCAiJXUiLAo+ICsJCQkJICAgJnJpbmdfcmVmWzBdKTsKPiArCQlpZiAoZXJyICE9 IDEpIHsKPiArCQkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgInJlYWRpbmcgJXMvcmluZy1y ZWYiLCBkaXIpOwoKU2FtZSBoZXJlLiBTZXQgZXJyIHRvIC1FSU5WQUwgYWJvdmUgdGhlIGNhbGwg dG8geGVuYnVzX2Rldl9mYXRhbCgpIGFuZCByZXR1cm4gaXQgYmVsb3cuLi4KCj4gKwkJCXJldHVy biAtRUlOVkFMOwo+ICAJCX0KPiAgCX0KPiAtCWJsa2lmLT5ucl9yaW5nX3BhZ2VzID0gbnJfZ3Jl ZnM7Cj4gCj4gIAlmb3IgKGkgPSAwOyBpIDwgbnJfZ3JlZnMgKiBYRU5fQkxLSUZfUkVRU19QRVJf UEFHRTsgaSsrKSB7Cj4gIAkJcmVxID0ga3phbGxvYyhzaXplb2YoKnJlcSksIEdGUF9LRVJORUwp Owo+IEBAIC0xMDMxLDYgKzEwMjYsNyBAQCBzdGF0aWMgaW50IGNvbm5lY3RfcmluZyhzdHJ1Y3Qg YmFja2VuZF9pbmZvICpiZSkKPiAgCXNpemVfdCB4c3BhdGhzaXplOwo+ICAJY29uc3Qgc2l6ZV90 IHhlbnN0b3JlX3BhdGhfZXh0X3NpemUgPSAxMTsgLyogc3VmZmljaWVudCBmb3IgIi9xdWV1ZS0K PiBOTk4iICovCj4gIAl1bnNpZ25lZCBpbnQgcmVxdWVzdGVkX251bV9xdWV1ZXMgPSAwOwo+ICsJ dW5zaWduZWQgaW50IHJpbmdfcGFnZV9vcmRlcjsKPiAKPiAgCXByX2RlYnVnKCIlcyAlc1xuIiwg X19mdW5jX18sIGRldi0+b3RoZXJlbmQpOwo+IAo+IEBAIC0xMDc2LDYgKzEwNzIsMjAgQEAgc3Rh dGljIGludCBjb25uZWN0X3Jpbmcoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpCj4gIAkJIGJsa2lm LT5ucl9yaW5ncywgYmxraWYtPmJsa19wcm90b2NvbCwgcHJvdG9jb2wsCj4gIAkJIHBlcnNfZ3Jh bnRzID8gInBlcnNpc3RlbnQgZ3JhbnRzIiA6ICIiKTsKPiAKPiArCXJpbmdfcGFnZV9vcmRlciA9 IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGRldi0+b3RoZXJlbmQsCj4gKwkJCQkJICAgICAgICJyaW5n LXBhZ2Utb3JkZXIiLCAwKTsKPiArCj4gKwlpZiAocmluZ19wYWdlX29yZGVyID4geGVuX2Jsa2lm X21heF9yaW5nX29yZGVyKSB7Cj4gKwkJZXJyID0gLUVJTlZBTDsKPiArCQl4ZW5idXNfZGV2X2Zh dGFsKGRldiwgZXJyLAo+ICsJCQkJICJyZXF1ZXN0ZWQgcmluZyBwYWdlIG9yZGVyICVkIGV4Y2Vl ZCBtYXg6JWQiLAo+ICsJCQkJIHJpbmdfcGFnZV9vcmRlciwKPiArCQkJCSB4ZW5fYmxraWZfbWF4 X3Jpbmdfb3JkZXIpOwo+ICsJCXJldHVybiBlcnI7CgouLi4ganVzdCBsaWtlIGhlcmUgOi0pCgog IFBhdWwKCj4gKwl9Cj4gKwo+ICsJYmxraWYtPm5yX3JpbmdfcGFnZXMgPSAxIDw8IHJpbmdfcGFn ZV9vcmRlcjsKPiArCj4gIAlpZiAoYmxraWYtPm5yX3JpbmdzID09IDEpCj4gIAkJcmV0dXJuIHJl YWRfcGVyX3JpbmdfcmVmcygmYmxraWYtPnJpbmdzWzBdLCBkZXYtPm90aGVyZW5kKTsKPiAgCWVs c2Ugewo+IC0tCj4gMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs