From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id q9ANLCxJ187832 for ; Wed, 10 Oct 2012 18:21:12 -0500 Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id U0y7IMQd63aTa2Pz for ; Wed, 10 Oct 2012 16:22:43 -0700 (PDT) Date: Thu, 11 Oct 2012 10:22:41 +1100 From: Dave Chinner Subject: Re: [PATCH] xfs: avoid underflow in xfs_ioc_trim() Message-ID: <20121010232241.GZ23644@dastard> References: <1349784945-28399-1-git-send-email-lczerner@redhat.com> <20121009193908.GI23644@dastard> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: xfs-bounces@oss.sgi.com Errors-To: xfs-bounces@oss.sgi.com To: =?utf-8?B?THVrw6HFoQ==?= Czerner Cc: xfs@oss.sgi.com T24gV2VkLCBPY3QgMTAsIDIwMTIgYXQgMDk6NTA6MzhBTSArMDIwMCwgTHVrw6HFoSBDemVybmVy IHdyb3RlOgo+IE9uIFdlZCwgMTAgT2N0IDIwMTIsIERhdmUgQ2hpbm5lciB3cm90ZToKPiAKPiA+ IERhdGU6IFdlZCwgMTAgT2N0IDIwMTIgMDY6Mzk6MDggKzExMDAKPiA+IEZyb206IERhdmUgQ2hp bm5lciA8ZGF2aWRAZnJvbW9yYml0LmNvbT4KPiA+IFRvOiBMdWthcyBDemVybmVyIDxsY3plcm5l ckByZWRoYXQuY29tPgo+ID4gQ2M6IHhmc0Bvc3Muc2dpLmNvbQo+ID4gU3ViamVjdDogUmU6IFtQ QVRDSF0geGZzOiBhdm9pZCB1bmRlcmZsb3cgaW4geGZzX2lvY190cmltKCkKPiA+IAo+ID4gT24g VHVlLCBPY3QgMDksIDIwMTIgYXQgMDI6MTU6NDVQTSArMDIwMCwgTHVrYXMgQ3plcm5lciB3cm90 ZToKPiA+ID4gQ3VycmVudGx5IGlmIGxlbiBhcmd1bWVudCBpbiB4ZnNfaW9jX3RyaW0oKSBpcyBz bWFsbGVyIHRoYW4gb25lIEJCCj4gPiA+IChiYXNpYyBibG9jaykgdGhlICdlbmQnIHZhcmlhYmxl IHVuZGVyZmxvdy4gQXZvaWQgdGhhdCBieSBiYWlsaW5nIG91dCBpZgo+ID4gPiBsZW4gaXMgc21h bGxlciB0aGFuIEJCLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogTHVrYXMgQ3plcm5lciA8 bGN6ZXJuZXJAcmVkaGF0LmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBmcy94ZnMveGZzX2Rpc2NhcmQu YyB8ICAgIDcgKysrKysrLQo+ID4gPiAgMSBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19kaXNj YXJkLmMgYi9mcy94ZnMveGZzX2Rpc2NhcmQuYwo+ID4gPiBpbmRleCA2OWNmNGZjLi41NGRjNThh IDEwMDY0NAo+ID4gPiAtLS0gYS9mcy94ZnMveGZzX2Rpc2NhcmQuYwo+ID4gPiArKysgYi9mcy94 ZnMveGZzX2Rpc2NhcmQuYwo+ID4gPiBAQCAtMTgzLDggKzE4MywxMiBAQCB4ZnNfaW9jX3RyaW0o Cj4gPiA+ICAJICAgIHJhbmdlLm1pbmxlbiA+IFhGU19GU0JfVE9fQihtcCwgWEZTX0FMTE9DX0FH X01BWF9VU0FCTEUobXApKSkKPiA+ID4gIAkJcmV0dXJuIC1YRlNfRVJST1IoRUlOVkFMKTsKPiA+ ID4gIAo+ID4gPiArCWVuZCA9IEJUT0JCVChyYW5nZS5sZW4pOwo+ID4gPiArCWlmICgwID09IGVu ZCkKPiA+ID4gKwkJZ290byBvdXQ7Cj4gPiAKPiA+IFVnZ2guICJpZiAoZW5kID09IDApIiwgcGxl YXNlLgo+IAo+IE5vdCBhIFN0YXIgV2FycyBmYW4gdGhlbiA/IDspLiBPaywgSSdsbCBjaGFuZ2Ug dGhhdC4KCkkgbWlnaHQgYmUsIGJ1dCBJIGRvbid0IGdldCB0aGUgcmVmZXJlbmNlIC0gc29tZXRo aW5nIHRvIGRvIHdpdGggdGhlCnNlY29uZCBtb29uIG9mIEVuZG9yLCBvciBqdXN0IGxldHRpbmcg dGhlIHdvb2tpZSB3aW4gc28geW91IGRvbid0CmNvbWUgdG8gYW4gYXJtbGVzcyBlbmQ/IDopCgpB cyBpdCBpcywgSSBkb24ndCBsaWtlIHJldmVyc2UgbG9naWMgbm90YXRpb24gYmVjYXVzZSBpdCBt YWtlcyBjb2RlCnN0cmFuZ2UgYW5kIHVucmVhZGFibGUuIEl0IGRvZXNuJ3QgcHJvdmlkZSBhbnkg cmVhbCBiZW5lZml0IGJlY2F1c2UKdGhlIGNvbXBpbGVyIHdpbGwgd2FybiBhYm91dCB0eXBvcyB0 aGF0IHJlc3VsdCBpbiBhc3NpZ25tZW50cyBpbgpzdWNoIHN0YXRlbWVudHMgKGkuZS4gIGlmIChl bmQgPSAwKSkuIEhlbmNlIHdyaXRpbmcgY29kZSBzbyB0aGF0IHRoZQpjb21waWxhdGlvbiB3aWxs IGZhaWwgaWYgeW91IG1ha2UgYSB0eXBvIGlzbid0IG5lY2Vzc2FyeSAtIENsZWFyLApjb25zaXN0 ZW50IGFuZCBlYXNpbHkgcmVhZGFibGUgY29kZSBpcyBtdWNoIG1vcmUgaW1wb3J0YW50Li4uLgoK PiA+ID4gKwo+ID4gPiAgCXN0YXJ0ID0gQlRPQkIocmFuZ2Uuc3RhcnQpOwo+ID4gPiAtCWVuZCA9 IHN0YXJ0ICsgQlRPQkJUKHJhbmdlLmxlbikgLSAxOwo+ID4gPiArCWVuZCArPSBzdGFydCAtIDE7 Cj4gPiAKPiA+IEJldHRlciB3b3VsZCBiZSB0byBjaGVjayBpZiBlbmQgPD0gc3RhcnQuIFRoYXQg d2F5IGl0IGFsc28gY2F0Y2hlcwo+ID4gc3RhcnQrbGVuIG92ZXJmbG93cy4KPiAKPiBUaGF0J3Mg bm90IHBvc3NpYmxlLiBFdmVuIGlmIHJhbmdlLnN0YXJ0IGFuZCByYW5nZS5sZW4gd291bGQgYmUK PiAyXjY0LTEgKHdoaWNoIGlzIG5vdCBwb3NzaWJsZSBmb3IgcmFuZ2Uuc3RhcnQpIHdlIGFsd2F5 cyBkbyB0aGUKPiBCVE9CQiBjb252ZXJzaW9uIGFuZCAoKDJeNjQtMSkgLyA1MTIpICogMiBhbHdh eXMgZml0cyB0aGUgX3M2NAo+IHR5cGUuCgpSZWdhcmRsZXNzLCBjaGVja2luZyB0aGF0IHRoZSBl bmQgb2YgdGhlIHJhbmdlIGlzIGFmdGVyIHRoZSBzdGFydCBpcyBhCm11Y2ggbW9yZSByb2J1c3Qg Y2hlY2sgdGhhbiBpbmRpdmlkdWFsIHVuZGVyZmxvdy9vdmVyZmxvdyB0ZXN0cy4gV2UKZG8gdGhh dCBhbGwgb3ZlciB0aGUgcGxhY2UgaW4gWEZTIHdoZW4gY29udmVydGluZyBieXRlIHJhbmdlcyB0 bwpibG9jayBiYXNlZCBzdGFydC9lbmQgcGFpcnMuCgo+ID4gPiAgCW1pbmxlbiA9IEJUT0JCKG1h eF90KHU2NCwgZ3JhbnVsYXJpdHksIHJhbmdlLm1pbmxlbikpOwo+ID4gPiAgCj4gPiA+ICAJaWYg KGVuZCA+IFhGU19GU0JfVE9fQkIobXAsIG1wLT5tX3NiLnNiX2RibG9ja3MpIC0gMSkKPiA+ID4g QEAgLTIwMyw2ICsyMDcsNyBAQCB4ZnNfaW9jX3RyaW0oCj4gPiA+ICAJaWYgKGxhc3RfZXJyb3Ip Cj4gPiA+ICAJCXJldHVybiBsYXN0X2Vycm9yOwo+ID4gPiAgCj4gPiA+ICtvdXQ6Cj4gPiA+ICAJ cmFuZ2UubGVuID0gWEZTX0ZTQl9UT19CKG1wLCBibG9ja3NfdHJpbW1lZCk7Cj4gPiA+ICAJaWYg KGNvcHlfdG9fdXNlcih1cmFuZ2UsICZyYW5nZSwgc2l6ZW9mKHJhbmdlKSkpCj4gPiA+ICAJCXJl dHVybiAtWEZTX0VSUk9SKEVGQVVMVCk7Cj4gPiAKPiA+IEkgdGhpbmsgaXQgc2hvdWxkIHJldHVy biBFSU5WQUwsIG5vdCBzaWxlbnRseSBkbyBub3RoaW5nLiBJZiB0aGUKPiA+IHVzZXIgYXBwbGlj YXRpb24gdXNlcyBhIGxvb3AgdGhhdCBpbmNyZW1lbnRzIHN0YXJ0L2xlbiBiYXNlZCBvbiB0aGUK PiA+IHJldHVybmVkIGFtb3VudCBvZiBibG9ja3MgdHJpbW1lZCwgcmV0dXJuaW5nIHplcm8gY291 bGQgc2VuZCBpdCBpbnRvCj4gPiBhbiBlbmRsZXNzIGxvb3AuCj4gCj4gVGhhdCdzIG5vdCB3aGF0 IHRoZSBhcHBsaWNhdGlvbiB3b3VsZCBkby4gQXQgbGVhc3QgaXQgd291bGQgbm90IHNldAo+IGxl biB0byB3aGF0J3MgcmV0dXJuZWQgYXMgbnVtYmVyIG9mIGJsb2NzIGRpc2NhcmRlZCwgaXQgZG9l cyBub3QKPiBtYWtlIHNlbnNlLgoKT2gsIHJpZ2h0LCBteSBtaXN0YWtlLgoKPiBIb3dldmVyIGlm IHVzZXIgc3BlY2lmeSBsZW5ndGggc21hbGxlciB0aGFuIHdoYXQgd2UncmUgYWJsZSB0bwo+IGRp c2NhcmQgKGluIHhmcyBpdCBpcyBCQlNJWkUgaWYgSSBhbSBub3QgbWlzdGFrZW4/KSwgdGhlbiBp dAo+IHByb2JhYmx5IG1ha2Ugc2Vuc2UgdG8gcmV0dXJuIC1FSU5WQUwuIEl0IGlzIHNpbWlsYXIg c2l0dWF0aW9uIG9mCj4gbWlubGVuLCB3aGVyZSB3ZSByZXR1cm4gLUVJTlZBTCBpZiBpdCBpcyBi aWdnZXIgdGhhbiBBRy4gSG93ZXZlcgo+IHRoaXMgd2lsbCBtYWtlIGl0IHRvIGZhaWwgYXQgZGlm ZmVyZW50IHRocmVzaG9sZCBvbiBkaWZmZXJlbnQgZmlsZQo+IHN5c3RlbSAvIGJsb2NrIHNpemVz IHNvIEkgYW0gb24gdGhlIGZlbmNlIGFib3V0IGl0LiBXaGF0IGRvIHlvdQo+IHRoaW5rLCBpcyBp dCB3b3J0aCBpdCA/CgpBY3R1YWxseSwgdGhlIG1pbmltdW0gbGVuZ3RoIHRoYXQgY2FuIGJlIGRp c2NhcmRlZCBpcyB0aGUgZmlsZXN5c3RlbQpibG9jayBzaXplLCBhbmQgYXBwbGljYXRpb25zIGNh biBnZXQgdGhhdCBlYXNpbHkgZW5vdWdoIGZyb20Kc3RhdCgyKS4gIElPV3MsIHdlIHByb2JhYmx5 IHNob3VsZCBiZSByZWplY3RpbmcgbWlubGVuIDwgMSBGU0IsCnJhbmdlIDwgMSBGU0Igd2l0aCBF SU5WQUwuLi4uCgpDaGVlcnMsCgpEYXZlLgotLSAKRGF2ZSBDaGlubmVyCmRhdmlkQGZyb21vcmJp dC5jb20KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnhm cyBtYWlsaW5nIGxpc3QKeGZzQG9zcy5zZ2kuY29tCmh0dHA6Ly9vc3Muc2dpLmNvbS9tYWlsbWFu L2xpc3RpbmZvL3hmcwo=