From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 1/2] drm: Fix memory leak at error path of drm_read() Date: Thu, 04 Dec 2014 17:55:55 +0100 Message-ID: References: <1417690603-1595-1-git-send-email-tiwai@suse.de> <20141204115114.GB13586@nuc-i3427.alporthouse.com> <20141204122839.GE20350@phenom.ffwll.local> <20141204163115.GF13586@nuc-i3427.alporthouse.com> <20141204163857.GG13586@nuc-i3427.alporthouse.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTP id 487836E3D6 for ; Thu, 4 Dec 2014 08:55:57 -0800 (PST) In-Reply-To: <20141204163857.GG13586@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QXQgVGh1LCA0IERlYyAyMDE0IDE2OjM4OjU3ICswMDAwLApDaHJpcyBXaWxzb24gd3JvdGU6Cj4g Cj4gT24gVGh1LCBEZWMgMDQsIDIwMTQgYXQgMDQ6MzE6MTVQTSArMDAwMCwgQ2hyaXMgV2lsc29u IHdyb3RlOgo+ID4gT24gVGh1LCBEZWMgMDQsIDIwMTQgYXQgMDE6Mjg6MzlQTSArMDEwMCwgRGFu aWVsIFZldHRlciB3cm90ZToKPiA+ID4gT24gVGh1LCBEZWMgMDQsIDIwMTQgYXQgMTE6NTE6MTRB TSArMDAwMCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgRGVjIDA0LCAyMDE0 IGF0IDExOjU2OjQyQU0gKzAxMDAsIFRha2FzaGkgSXdhaSB3cm90ZToKPiA+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KPiA+ID4gPiA+IC0tLQo+ID4g PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jIHwgMSArCj4gPiA+ID4gPiAgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5j Cj4gPiA+ID4gPiBpbmRleCBlZDdiYzY4ZjdlODcuLmE4MmRjMjhkNTRmMyAxMDA2NDQKPiA+ID4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCj4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwo+ID4gPiA+ID4gQEAgLTUyNSw2ICs1MjUsNyBAQCBzc2l6 ZV90IGRybV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmZmVyLAo+ID4g PiA+ID4gIAkJaWYgKGNvcHlfdG9fdXNlcihidWZmZXIgKyB0b3RhbCwKPiA+ID4gPiA+ICAJCQkJ IGUtPmV2ZW50LCBlLT5ldmVudC0+bGVuZ3RoKSkgewo+ID4gPiA+ID4gIAkJCXRvdGFsID0gLUVG QVVMVDsKPiA+ID4gPiA+ICsJCQllLT5kZXN0cm95KGUpOwo+ID4gPiA+IAo+ID4gPiA+IFdlIHNo b3VsZG4ndCBqdXN0IGJlIHRocm93aW5nIGF3YXkgdGhlIGV2ZW50IGhlcmUsIGJ1dCBwdXQgdGhl IGV2ZW50Cj4gPiA+ID4gYmFjayBhdCB0aGUgZnJvbnQgb2YgdGhlIHF1ZXVlLiBQb3NlcyBhbiBp bnRlcmVzdGluZyByYWNlIGlzc3VlLiBTZWVtcwo+ID4gPiA+IGxpa2Ugd2Ugd2FudCB0byBob2xk IHRoZSBzcGlubG9jayB1bnRpbCB0aGUgY29weSBpcyBjb21wbGV0ZSBzbyB0aGF0IHdlCj4gPiA+ ID4gY2FuIGZpeCB1cCB0aGUgZmFpbHVyZSBjb3JyZWN0bHkuCj4gPiA+IAo+ID4gPiBJJ3ZlIHJl YWQgdGhlIG1hbnBhZ2UgZm9yIHJlYWQgYW5kIGl0IGV4cGxpY2l0bHkgc3RhdGVzIHRoYXQgd2hl biB5b3UgZ2V0Cj4gPiA+IGFuIGVycm9yIGl0J3MgdW5kZWZpbmVkIHdoYXQgaGFwcGVucyB0byB0 aGUgcmVhZCBwb3NpdGlvbi4gU2luY2UgLUVGQVVMVAo+ID4gPiBpcyByZWFsbHkganVzdCBhIHVz ZXJzcGFjZSBidWcgSSB0aGluayB3ZSBjYW4gaGFwcGlseSBkcm9wIHRoZSBldmVudCBvbgo+ID4g PiB0aGUgZmxvb3IsIG5vIHJlYXNvbiB0byBiZW5kIG92ZXIgaW4gdGhlIGtlcm5lbC4KPiA+IAo+ ID4gSG1tLiBBY3R1YWxseSB0aGUgY29kZSBpcyBidWdneSBpcyB0aGUgcHJvdmlkZWQgYnVmZmVy IGlzIHRvbyBzaG9ydCBmb3IKPiA+IHRoZSBmaXJzdCBldmVudCBpbiBPX05PTkJMT0NLIG1vZGUu Cj4gCj4gSnVzdCBpbmxpbmluZyBkcm1fZGVxdWV1ZV9ldmVudCBpcyBzaW1wbGUgZW5vdWdoIHRv IGZpeCB0aGUgaXNzdWU6CgpSaWdodCwgdGhpcyBhdm9pZHMgdGhlIGRlcXVldWluZyBhdCBlcnJv ci4KCkJ1dCBzdGlsbCB0aGVyZSBpcyBhIHJhY2UgYmV0d2VlbiB3YWl0X2V2ZW50X2ludGVycnVw dGlibGUoKSBhbmQKZGVxdWV1aW5nLiAgU28sIHRoZSBtb3JlIGNvbXByZWhlbnNpdmUgY29kZSBz aG91bGQgbG9vayBsaWtlOgoKCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSwgYnVmZmVyLCBj b3VudCkpCgkJcmV0dXJuIC1FRkFVTFQ7CgoJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2Nr KTsKCWZvciAoOzspIHsKCQlpZiAobGlzdF9lbXB0eSgmZmlsZV9wcml2LT5ldmVudF9saXN0KSkg ewoJCQlpZiAocmV0KQoJCQkJYnJlYWs7CgkJCWlmICghKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJM T0NLKSkgewoJCQkJcmV0ID0gLUVBR0FJTjsKCQkJCWJyZWFrOwoJCQl9CgkJCXNwaW5fdW5sb2Nr X2lycSgmZGV2LT5ldmVudF9sb2NrKTsKCQkJcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxl KC4uLi4pOwoJCQlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwoJCQlpZiAocmV0IDwg MCkKCQkJCWJyZWFrOwoJCQlyZXQgPSAwOwoJCQljb250aW51ZTsKCQl9CgoJCWUgPSBsaXN0X2Zp cnN0X2VudHJ5KCZmaWxlX3ByaXYtPmV2ZW50X2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQsIGxpbmspOwoJCWlmIChlLT5l dmVudC0+bGVuZ3RoICsgcmV0ID4gY291bnQpCgkJCWJyZWFrOwoKCQlpZiAoX19jb3B5X3RvX3Vz ZXJfaW5hdG9taWMoYnVmZmVyICsgcmV0LAoJCQkJCSAgICBlLT5ldmVudCwgZS0+ZXZlbnQtPmxl bmd0aCkpIHsKCQkJaWYgKCFyZXQpCgkJCQlyZXQgPSAtRUZBVUxUOwoJCQlicmVhazsKCQl9CgoJ CWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgKz0gZS0+ZXZlbnQtPmxlbmd0aDsKCQlyZXQgKz0gZS0+ ZXZlbnQtPmxlbmd0aDsKCQlsaXN0X2RlbCgmZS0+bGluayk7CgkJZS0+ZGVzdHJveShlKTsKCX0J CQkKCglzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CglyZXR1cm4gcmV0OwoKCnRo YW5rcywKClRha2FzaGkKCQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zv cHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCj4gaW5kZXggOTFlMTEwNS4uN2FmNjY3 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZm9wcy5jCj4gQEAgLTQ3OCw0MyArNDc4LDE3IEBAIGludCBkcm1fcmVs ZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKPiAgfQo+ICBFWFBP UlRfU1lNQk9MKGRybV9yZWxlYXNlKTsKPiAgCj4gLXN0YXRpYyBib29sCj4gLWRybV9kZXF1ZXVl X2V2ZW50KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0gICAgICAgICAgICAgICAgIHNp emVfdCB0b3RhbCwgc2l6ZV90IG1heCwgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50ICoqb3V0KQo+ IC17Cj4gLSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmlsZV9wcml2LT5taW5vci0+ ZGV2Owo+IC0gICAgICAgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50ICplOwo+IC0gICAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKPiAtICAgICAgIGJvb2wgcmV0ID0gZmFsc2U7Cj4gLQo+IC0gICAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+IC0KPiAtICAg ICAgICpvdXQgPSBOVUxMOwo+IC0gICAgICAgaWYgKGxpc3RfZW1wdHkoJmZpbGVfcHJpdi0+ZXZl bnRfbGlzdCkpCj4gLSAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+IC0gICAgICAgZSA9IGxpc3Rf Zmlyc3RfZW50cnkoJmZpbGVfcHJpdi0+ZXZlbnRfbGlzdCwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCwgbGluayk7Cj4gLSAgICAgICBpZiAo ZS0+ZXZlbnQtPmxlbmd0aCArIHRvdGFsID4gbWF4KQo+IC0gICAgICAgICAgICAgICBnb3RvIG91 dDsKPiAtCj4gLSAgICAgICBmaWxlX3ByaXYtPmV2ZW50X3NwYWNlICs9IGUtPmV2ZW50LT5sZW5n dGg7Cj4gLSAgICAgICBsaXN0X2RlbCgmZS0+bGluayk7Cj4gLSAgICAgICAqb3V0ID0gZTsKPiAt ICAgICAgIHJldCA9IHRydWU7Cj4gLQo+IC1vdXQ6Cj4gLSAgICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiAtICAgICAgIHJldHVybiByZXQ7Cj4g LX0KPiAtCj4gIHNzaXplX3QgZHJtX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2Vy ICpidWZmZXIsCj4gICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqb2Zmc2V0 KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZh dGVfZGF0YTsKPiAtICAgICAgIHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCAqZTsKPiAtICAgICAg IHNpemVfdCB0b3RhbDsKPiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3By aXYtPm1pbm9yLT5kZXY7Cj4gKyAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgICAgICAg c3NpemVfdCByZXQ7Cj4gIAo+ICsgICAgICAgaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBi dWZmZXIsIGNvdW50KSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICAg ICAgICAgaWYgKChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykgPT0gMCkgewo+ICAgICAgICAg ICAgICAgICByZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZmlsZV9wcml2LT5ldmVudF93 YWl0LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxp c3RfZW1wdHkoJmZpbGVfcHJpdi0+ZXZlbnRfbGlzdCkpOwo+IEBAIC01MjIsMTkgKzQ5NiwzNSBA QCBzc2l6ZV90IGRybV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmZmVy LAo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gICAgICAgICB9Cj4gIAo+ IC0gICAgICAgdG90YWwgPSAwOwo+IC0gICAgICAgd2hpbGUgKGRybV9kZXF1ZXVlX2V2ZW50KGZp bGVfcHJpdiwgdG90YWwsIGNvdW50LCAmZSkpIHsKPiAtICAgICAgICAgICAgICAgaWYgKGNvcHlf dG9fdXNlcihidWZmZXIgKyB0b3RhbCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlLT5ldmVudCwgZS0+ZXZlbnQtPmxlbmd0aCkpIHsKPiAtICAgICAgICAgICAgICAgICAgICAg ICB0b3RhbCA9IC1FRkFVTFQ7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gLSAg ICAgICAgICAgICAgIH0KPiArICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50X2xv Y2ssIGZsYWdzKTsKPiArICAgICAgIGlmIChsaXN0X2VtcHR5KCZmaWxlX3ByaXYtPmV2ZW50X2xp c3QpKSB7Cj4gKyAgICAgICAgICAgICAgIHJldCA9IC1FQUdBSU47Cj4gKyAgICAgICB9IGVsc2Ug ewo+ICsgICAgICAgICAgICAgICByZXQgPSAwOwo+ICsgICAgICAgICAgICAgICBkbyB7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50ICplOwo+ICsKPiAr ICAgICAgICAgICAgICAgICAgICAgICBlID0gbGlzdF9maXJzdF9lbnRyeSgmZmlsZV9wcml2LT5l dmVudF9saXN0LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCwgbGluayk7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGUtPmV2ZW50LT5sZW5ndGggKyByZXQgPiBjb3VudCkKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsKPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAo X19jb3B5X3RvX3VzZXJfaW5hdG9taWMoYnVmZmVyICsgcmV0LAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLT5ldmVudCwgZS0+ZXZlbnQtPmxl bmd0aCkpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAg ICAgICAgICAgIH0KPiAgCj4gLSAgICAgICAgICAgICAgIHRvdGFsICs9IGUtPmV2ZW50LT5sZW5n dGg7Cj4gLSAgICAgICAgICAgICAgIGUtPmRlc3Ryb3koZSk7Cj4gKyAgICAgICAgICAgICAgICAg ICAgICAgZmlsZV9wcml2LT5ldmVudF9zcGFjZSArPSBlLT5ldmVudC0+bGVuZ3RoOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgIHJldCArPSBlLT5ldmVudC0+bGVuZ3RoOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGxpc3RfZGVsKCZlLT5saW5rKTsKPiArICAgICAgICAgICAgICAgICAgICAg ICBlLT5kZXN0cm95KGUpOwo+ICsgICAgICAgICAgICAgICB9IHdoaWxlICghbGlzdF9lbXB0eSgm ZmlsZV9wcml2LT5ldmVudF9saXN0KSk7Cj4gICAgICAgICB9Cj4gKyAgICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiAgCj4gLSAgICAgICByZXR1 cm4gdG90YWwgPzogLUVBR0FJTjsKPiArICAgICAgIHJldHVybiByZXQ7Cj4gIH0KPiAgRVhQT1JU X1NZTUJPTChkcm1fcmVhZCk7Cj4gCj4gCj4gd2hpY2ggbG9va3MgZmFtaWxhciB0byB0aGUgcHJl dmlvdXMgYXR0ZW1wdCB0byBnZXQgT19OT05CTE9DSyBmaXhlZC4KPiAtQ2hyaXMKPiAKPiAtLSAK PiBDaHJpcyBXaWxzb24sIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudHJlCj4gCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==