Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx2.netapp.com ([216.240.18.37]:31946 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755001Ab2ICTLy (ORCPT ); Mon, 3 Sep 2012 15:11:54 -0400 From: "Myklebust, Trond" To: Sachin Prabhu CC: Linux NFS mailing list Subject: Re: [PATCH] Avoid array overflow in __nfs4_get_acl_uncached Date: Mon, 3 Sep 2012 19:11:52 +0000 Message-ID: <4FA345DA4F4AE44899BD2B03EEEC2FA908F81C4A@SACEXCMBX04-PRD.hq.netapp.com> References: <1345817768-23511-1-git-send-email-sprabhu@redhat.com> <4FA345DA4F4AE44899BD2B03EEEC2FA908F4AF1E@SACEXCMBX01-PRD.hq.netapp.com> <1345843866.2279.6.camel@localhost> <4FA345DA4F4AE44899BD2B03EEEC2FA908F5842F@SACEXCMBX01-PRD.hq.netapp.com> <1345845062.32200.1.camel@localhost> <4FA345DA4F4AE44899BD2B03EEEC2FA908F5859F@SACEXCMBX01-PRD.hq.netapp.com> <1345937503.4943.17.camel@localhost> <4FA345DA4F4AE44899BD2B03EEEC2FA908F69340@SACEXCMBX04-PRD.hq.netapp.com> <1346162966.2554.3.camel@localhost> In-Reply-To: <1346162966.2554.3.camel@localhost> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gVHVlLCAyMDEyLTA4LTI4IGF0IDE1OjA5ICswMTAwLCBTYWNoaW4gUHJhYmh1IHdyb3RlOg0K PiA+IE9LLiBIb3cgYWJvdXQgdGhpcyBwYXRjaCwgd2hpY2ggYXBwbGllcyBvbiB0b3Agb2YgdGhl IG9uZSBJIHNlbnQgeW91Pw0KPiA+IDg8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBGcm9tIDIyYzllMjQ3NTU2MGVk ZGE5MjVmOTcxYTJhMDJiYWM1ODUzNjQxNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQo+ID4g RnJvbTogVHJvbmQgTXlrbGVidXN0IDxUcm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNvbT4NCj4gPiBE YXRlOiBTdW4sIDI2IEF1ZyAyMDEyIDExOjQ0OjQzIC0wNzAwDQo+ID4gU3ViamVjdDogW1BBVENI XSBORlN2NDogQWRkIGJ1ZmZlciBvdmVyZmxvdyBjaGVja2luZyB0byBuZnM0X3dyaXRlX2NhY2hl ZF9hY2wNCj4gPiANCj4gPiBDdXJyZW50bHksIHRoZSBidWZmZXIgb3ZlcmZsb3cgY2hlY2tpbmcg aXMgZG9uZSBpbmNvcnJlY3RseSBieSB0aGUNCj4gPiBjYWxsZXIuIE1vdmUgdGhlIG92ZXJmbG93 IGNoZWNraW5nIGludG8gbmZzNF93cml0ZV9jYWNoZWRfYWNsIGl0c2VsZg0KPiA+IGZvciByb2J1 c3RuZXNzLCBhbmQgZml4IHRoZSBvdmVyZmxvdyBjYWxjdWxhdGlvbiB0byB0YWtlIGludG8gYWNj b3VudA0KPiA+IHRoZSAncGdiYXNlJyBhcmd1bWVudCB0byBfY29weV9mcm9tX3BhZ2VzLg0KPiA+ IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFRyb25kIE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0QG5l dGFwcC5jb20+DQo+ID4gLS0tDQo+ID4gIGZzL25mcy9uZnM0cHJvYy5jIHwgMTIgKysrKystLS0t LS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p DQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0cHJvYy5jIGIvZnMvbmZzL25mczRw cm9jLmMNCj4gPiBpbmRleCA2NTRkYzM4Li5hZjRlYmMzIDEwMDY0NA0KPiA+IC0tLSBhL2ZzL25m cy9uZnM0cHJvYy5jDQo+ID4gKysrIGIvZnMvbmZzL25mczRwcm9jLmMNCj4gPiBAQCAtMzczNCwx MiArMzczNCwxMyBAQCBvdXQ6DQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4gIA0KPiA+ IC1zdGF0aWMgdm9pZCBuZnM0X3dyaXRlX2NhY2hlZF9hY2woc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZV90IHBnYmFzZSwgc2l6ZV90IGFjbF9sZW4pDQo+ID4g K3N0YXRpYyB2b2lkIG5mczRfd3JpdGVfY2FjaGVkX2FjbChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgcGFnZSAqKnBhZ2VzLA0KPiA+ICsJCXNpemVfdCBzcmNsZW4sIHNpemVfdCBwZ2Jhc2Us IHNpemVfdCBhY2xfbGVuKQ0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgbmZzNF9jYWNoZWRfYWNsICph Y2w7DQo+ID4gIAlzaXplX3QgYnVmbGVuID0gc2l6ZW9mKCphY2wpICsgYWNsX2xlbjsNCj4gPiAg DQo+ID4gLQlpZiAocGFnZXMgJiYgYnVmbGVuIDw9IFBBR0VfU0laRSkgew0KPiA+ICsJaWYgKGJ1 ZmxlbiA8PSBQQUdFX1NJWkUgJiYgc3JjbGVuIDw9IHBnYmFzZSArIGFjbF9sZW4pIHsNCj4gPiAg CQlhY2wgPSBrbWFsbG9jKGJ1ZmxlbiwgR0ZQX0tFUk5FTCk7DQo+ID4gIAkJaWYgKGFjbCA9PSBO VUxMKQ0KPiA+ICAJCQlnb3RvIG91dDsNCj4gPiBAQCAtMzgyMCwxMSArMzgyMSw4IEBAIHN0YXRp YyBzc2l6ZV90IF9fbmZzNF9nZXRfYWNsX3VuY2FjaGVkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZv aWQgKmJ1Ziwgc2l6ZV90IGJ1DQo+ID4gIAkJZ290byBvdXRfZnJlZTsNCj4gPiAgDQo+ID4gIAlh Y2xfbGVuID0gcmVzLmFjbF9sZW47DQo+ID4gLQlpZiAoYWNsX2xlbiA+IGFyZ3MuYWNsX2xlbikN Cj4gPiAtCQluZnM0X3dyaXRlX2NhY2hlZF9hY2woaW5vZGUsIE5VTEwsIDAsIGFjbF9sZW4pOw0K PiA+IC0JZWxzZQ0KPiA+IC0JCW5mczRfd3JpdGVfY2FjaGVkX2FjbChpbm9kZSwgcGFnZXMsIHJl cy5hY2xfZGF0YV9vZmZzZXQsDQo+ID4gLQkJCQkgICAgICBhY2xfbGVuKTsNCj4gPiArCW5mczRf d3JpdGVfY2FjaGVkX2FjbChpbm9kZSwgcGFnZXMsIGFyZ3MuYWNsX2xlbiwNCj4gPiArCQkJcmVz LmFjbF9kYXRhX29mZnNldCwgcmVzLmFjbF9sZW4pOw0KPiA+ICAJaWYgKGJ1Zikgew0KPiA+ICAJ CXJldCA9IC1FUkFOR0U7DQo+ID4gIAkJaWYgKGFjbF9sZW4gPiBidWZsZW4pDQo+ID4gLS0gDQo+ ID4gMS43LjExLjQNCj4gDQo+IEkgZW5jb3VudGVyZWQgMiBwcm9ibGVtcy4gDQo+IDEpIFRoZSBp ZiBjb25kaXRpb24gc2hvdWxkIGJlIHNyY2xlbiA+PSBwZ2Jhc2UgKyBhY2xfbGVuDQo+IDIpIFRo ZXJlIGlzIGEgc2Vjb25kIF9jb3B5X2Zyb21fcGFnZXMgd2hpY2ggY29waWVzIHRvIHRoZSB0aGUg YWNsIHRvIHRoZQ0KPiBwYXNzZWQgYnVmZmVyIGluIF9fbmZzNF9nZXRfYWNsX3VuY2FjaGVkKCku DQoNClRoZSBzZWNvbmQgY29weSBmcm9tIHBhZ2VzIHNob3VsZCBhbHJlYWR5IGJlIGNvdmVyZWQg YnkgdGhlIGNoZWNrcyBpbg0KZGVjb2RlX2dldGFjbC4gQWxyaWdodCwgc2luY2UgdGhpcyBpcyBu b3Qgb2J2aW91cywgdGhlbiBjbGVhcmx5IHdlIG5lZWQNCnRvIG1ha2UgaXQgc28uIEhvdyBhYm91 dCB0aGUgZm9sbG93aW5nPw0KODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZyb20gNTA0MDI0MDI0NWEwNDZiZDU4YzM4 MzgwNmIzZjE2MWVlOGI1ODIzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCkZyb206IFRyb25k IE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20+DQpEYXRlOiBTdW4sIDI2IEF1 ZyAyMDEyIDExOjQ0OjQzIC0wNzAwDQpTdWJqZWN0OiBbUEFUQ0hdIE5GU3Y0OiBGaXggYnVmZmVy IG92ZXJmbG93IGNoZWNraW5nIGluDQogX19uZnM0X2dldF9hY2xfdW5jYWNoZWQNCg0KUGFzcyB0 aGUgY2hlY2tzIG1hZGUgYnkgZGVjb2RlX2dldGFjbCBiYWNrIHRvIF9fbmZzNF9nZXRfYWNsX3Vu Y2FjaGVkDQpzbyB0aGF0IGl0IGtub3dzIGlmIHRoZSBhY2wgaGFzIGJlZW4gdHJ1bmNhdGVkLg0K DQpTaWduZWQtb2ZmLWJ5OiBUcm9uZCBNeWtsZWJ1c3QgPFRyb25kLk15a2xlYnVzdEBuZXRhcHAu Y29tPg0KLS0tDQogZnMvbmZzL25mczRwcm9jLmMgICAgICAgfCAzMSArKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgfCAxMiArKysrLS0tLS0t LS0NCiBpbmNsdWRlL2xpbnV4L25mc194ZHIuaCB8ICAyICstDQogMyBmaWxlcyBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2ZzL25mcy9u ZnM0cHJvYy5jIGIvZnMvbmZzL25mczRwcm9jLmMNCmluZGV4IDY1NGRjMzguLjc0ZjVjMjYgMTAw NjQ0DQotLS0gYS9mcy9uZnMvbmZzNHByb2MuYw0KKysrIGIvZnMvbmZzL25mczRwcm9jLmMNCkBA IC0zNzM5LDcgKzM3MzksNyBAQCBzdGF0aWMgdm9pZCBuZnM0X3dyaXRlX2NhY2hlZF9hY2woc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZQ0KIAlzdHJ1Y3QgbmZz NF9jYWNoZWRfYWNsICphY2w7DQogCXNpemVfdCBidWZsZW4gPSBzaXplb2YoKmFjbCkgKyBhY2xf bGVuOw0KIA0KLQlpZiAocGFnZXMgJiYgYnVmbGVuIDw9IFBBR0VfU0laRSkgew0KKwlpZiAoYnVm bGVuIDw9IFBBR0VfU0laRSkgew0KIAkJYWNsID0ga21hbGxvYyhidWZsZW4sIEdGUF9LRVJORUwp Ow0KIAkJaWYgKGFjbCA9PSBOVUxMKQ0KIAkJCWdvdG8gb3V0Ow0KQEAgLTM3ODQsNyArMzc4NCw2 IEBAIHN0YXRpYyBzc2l6ZV90IF9fbmZzNF9nZXRfYWNsX3VuY2FjaGVkKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1DQogCX07DQogCXVuc2lnbmVkIGludCBucGFnZXMg PSBESVZfUk9VTkRfVVAoYnVmbGVuLCBQQUdFX1NJWkUpOw0KIAlpbnQgcmV0ID0gLUVOT01FTSwg aTsNCi0Jc2l6ZV90IGFjbF9sZW4gPSAwOw0KIA0KIAkvKiBBcyBsb25nIGFzIHdlJ3JlIGRvaW5n IGEgcm91bmQgdHJpcCB0byB0aGUgc2VydmVyIGFueXdheSwNCiAJICogbGV0J3MgYmUgcHJlcGFy ZWQgZm9yIGEgcGFnZSBvZiBhY2wgZGF0YS4gKi8NCkBAIC0zODA3LDExICszODA2LDYgQEAgc3Rh dGljIHNzaXplX3QgX19uZnM0X2dldF9hY2xfdW5jYWNoZWQoc3RydWN0IGlub2RlICppbm9kZSwg dm9pZCAqYnVmLCBzaXplX3QgYnUNCiAJYXJncy5hY2xfbGVuID0gbnBhZ2VzICogUEFHRV9TSVpF Ow0KIAlhcmdzLmFjbF9wZ2Jhc2UgPSAwOw0KIA0KLQkvKiBMZXQgZGVjb2RlX2dldGZhY2wga25v dyBub3QgdG8gZmFpbCBpZiB0aGUgQUNMIGRhdGEgaXMgbGFyZ2VyIHRoYW4NCi0JICogdGhlIHBh Z2Ugd2Ugc2VuZCBhcyBhIGd1ZXNzICovDQotCWlmIChidWYgPT0gTlVMTCkNCi0JCXJlcy5hY2xf ZmxhZ3MgfD0gTkZTNF9BQ0xfTEVOX1JFUVVFU1Q7DQotDQogCWRwcmludGsoIiVzICBidWYgJXAg YnVmbGVuICV6dSBucGFnZXMgJWQgYXJncy5hY2xfbGVuICV6dVxuIiwNCiAJCV9fZnVuY19fLCBi dWYsIGJ1ZmxlbiwgbnBhZ2VzLCBhcmdzLmFjbF9sZW4pOw0KIAlyZXQgPSBuZnM0X2NhbGxfc3lu YyhORlNfU0VSVkVSKGlub2RlKS0+Y2xpZW50LCBORlNfU0VSVkVSKGlub2RlKSwNCkBAIC0zODE5 LDIwICszODEzLDE5IEBAIHN0YXRpYyBzc2l6ZV90IF9fbmZzNF9nZXRfYWNsX3VuY2FjaGVkKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1DQogCWlmIChyZXQpDQogCQln b3RvIG91dF9mcmVlOw0KIA0KLQlhY2xfbGVuID0gcmVzLmFjbF9sZW47DQotCWlmIChhY2xfbGVu ID4gYXJncy5hY2xfbGVuKQ0KLQkJbmZzNF93cml0ZV9jYWNoZWRfYWNsKGlub2RlLCBOVUxMLCAw LCBhY2xfbGVuKTsNCi0JZWxzZQ0KLQkJbmZzNF93cml0ZV9jYWNoZWRfYWNsKGlub2RlLCBwYWdl cywgcmVzLmFjbF9kYXRhX29mZnNldCwNCi0JCQkJICAgICAgYWNsX2xlbik7DQotCWlmIChidWYp IHsNCisJLyogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXNzZWQtaW4gYnVmZmVyIGlzIHRv byBzaG9ydCAqLw0KKwlpZiAocmVzLmFjbF9mbGFncyAmIE5GUzRfQUNMX1RSVU5DKSB7DQorCQkv KiBEaWQgdGhlIHVzZXIgb25seSBpc3N1ZSBhIHJlcXVlc3QgZm9yIHRoZSBhY2wgbGVuZ3RoPyAq Lw0KKwkJaWYgKGJ1ZiA9PSBOVUxMKQ0KKwkJCWdvdG8gb3V0X29rOw0KIAkJcmV0ID0gLUVSQU5H RTsNCi0JCWlmIChhY2xfbGVuID4gYnVmbGVuKQ0KLQkJCWdvdG8gb3V0X2ZyZWU7DQotCQlfY29w eV9mcm9tX3BhZ2VzKGJ1ZiwgcGFnZXMsIHJlcy5hY2xfZGF0YV9vZmZzZXQsDQotCQkJCWFjbF9s ZW4pOw0KKwkJZ290byBvdXRfZnJlZTsNCiAJfQ0KLQlyZXQgPSBhY2xfbGVuOw0KKwluZnM0X3dy aXRlX2NhY2hlZF9hY2woaW5vZGUsIHBhZ2VzLCByZXMuYWNsX2RhdGFfb2Zmc2V0LCByZXMuYWNs X2xlbik7DQorCWlmIChidWYpDQorCQlfY29weV9mcm9tX3BhZ2VzKGJ1ZiwgcGFnZXMsIHJlcy5h Y2xfZGF0YV9vZmZzZXQsIHJlcy5hY2xfbGVuKTsNCitvdXRfb2s6DQorCXJldCA9IHJlcy5hY2xf bGVuOw0KIG91dF9mcmVlOg0KIAlmb3IgKGkgPSAwOyBpIDwgbnBhZ2VzOyBpKyspDQogCQlpZiAo cGFnZXNbaV0pDQpkaWZmIC0tZ2l0IGEvZnMvbmZzL25mczR4ZHIuYyBiL2ZzL25mcy9uZnM0eGRy LmMNCmluZGV4IDFiZmJkNjcuLjNlYmUwMjUgMTAwNjQ0DQotLS0gYS9mcy9uZnMvbmZzNHhkci5j DQorKysgYi9mcy9uZnMvbmZzNHhkci5jDQpAQCAtNTA3MywxNyArNTA3MywxMyBAQCBzdGF0aWMg aW50IGRlY29kZV9nZXRhY2woc3RydWN0IHhkcl9zdHJlYW0gKnhkciwgc3RydWN0IHJwY19ycXN0 ICpyZXEsDQogCQkgKiB2YXJpYWJsZSBsZW5ndGggYml0bWFwcy4qLw0KIAkJcmVzLT5hY2xfZGF0 YV9vZmZzZXQgPSB4ZHJfc3RyZWFtX3Bvcyh4ZHIpIC0gcGdfb2Zmc2V0Ow0KIA0KLQkJLyogV2Ug aWdub3JlICZzYXZlcCBhbmQgZG9uJ3QgZG8gY29uc2lzdGVuY3kgY2hlY2tzIG9uDQotCQkgKiB0 aGUgYXR0ciBsZW5ndGguICBMZXQgdXNlcnNwYWNlIGZpZ3VyZSBpdCBvdXQuLi4uICovDQogCQly ZXMtPmFjbF9sZW4gPSBhdHRybGVuOw0KLQkJaWYgKGF0dHJsZW4gPiAoeGRyLT5ud29yZHMgPDwg MikpIHsNCi0JCQlpZiAocmVzLT5hY2xfZmxhZ3MgJiBORlM0X0FDTF9MRU5fUkVRVUVTVCkgew0K LQkJCQkvKiBnZXR4YXR0ciBpbnRlcmZhY2UgY2FsbGVkIHdpdGggYSBOVUxMIGJ1ZiAqLw0KLQkJ CQlnb3RvIG91dDsNCi0JCQl9DQorCQkvKiBDaGVjayBmb3IgcmVjZWl2ZSBidWZmZXIgb3ZlcmZs b3cgKi8NCisJCWlmIChhdHRybGVuID4gKHhkci0+bndvcmRzIDw8IDIpIHx8DQorCQkgICAgYXR0 cmxlbiArIHBnX29mZnNldCA+IHhkci0+YnVmLT5wYWdlX2xlbikgew0KKwkJCXJlcy0+YWNsX2Zs YWdzIHw9IE5GUzRfQUNMX1RSVU5DOw0KIAkJCWRwcmludGsoIk5GUzogYWNsIHJlcGx5OiBhdHRy bGVuICV1ID4gcGFnZV9sZW4gJXVcbiIsDQogCQkJCQlhdHRybGVuLCB4ZHItPm53b3JkcyA8PCAy KTsNCi0JCQlyZXR1cm4gLUVJTlZBTDsNCiAJCX0NCiAJfSBlbHNlDQogCQlzdGF0dXMgPSAtRU9Q Tk9UU1VQUDsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25mc194ZHIuaCBiL2luY2x1ZGUv bGludXgvbmZzX3hkci5oDQppbmRleCBhYzdjOGFlLi5iZTljZjNjIDEwMDY0NA0KLS0tIGEvaW5j bHVkZS9saW51eC9uZnNfeGRyLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbmZzX3hkci5oDQpAQCAt NjUyLDcgKzY1Miw3IEBAIHN0cnVjdCBuZnNfZ2V0YWNsYXJncyB7DQogfTsNCiANCiAvKiBnZXR4 YXR0ciBBQ0wgaW50ZXJmYWNlIGZsYWdzICovDQotI2RlZmluZSBORlM0X0FDTF9MRU5fUkVRVUVT VAkweDAwMDEJLyogemVybyBsZW5ndGggZ2V0eGF0dHIgYnVmZmVyICovDQorI2RlZmluZSBORlM0 X0FDTF9UUlVOQwkJMHgwMDAxCS8qIEFDTCB3YXMgdHJ1bmNhdGVkICovDQogc3RydWN0IG5mc19n ZXRhY2xyZXMgew0KIAlzaXplX3QJCQkJYWNsX2xlbjsNCiAJc2l6ZV90CQkJCWFjbF9kYXRhX29m ZnNldDsNCi0tIA0KMS43LjExLjQNCg0KDQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZT IGNsaWVudCBtYWludGFpbmVyDQoNCk5ldEFwcA0KVHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20N Cnd3dy5uZXRhcHAuY29tDQoNCg==