From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Mihai=20Don=C8=9Bu?= Subject: [PATCH v2] xmalloc: add support for checking the pool integrity Date: Mon, 8 Dec 2014 04:30:48 +0200 Message-ID: <1418005848-17447-1-git-send-email-mdontu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Xxo6Q-0005T5-5E for xen-devel@lists.xenproject.org; Mon, 08 Dec 2014 02:31:10 +0000 Received: from smtp02.buh.bitdefender.net (unknown [10.17.80.76]) by mx-sr.buh.bitdefender.com (Postfix) with ESMTP id 2FE9480304 for ; Mon, 8 Dec 2014 04:31:06 +0200 (EET) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SW1wbGVtZW50ZWQgeG1lbV9wb29sX2NoZWNrKCksIHhtZW1fcG9vbF9jaGVja19sb2NrZWQoKSBh bmQKeG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKCkgdG8gdmVyaXR5IHRoZSBpbnRlZ3JpdHkgb2Yg dGhlIFRMU0YgbWF0cml4LgoKU2lnbmVkLW9mZi1ieTogTWloYWkgRG9uyJt1IDxtZG9udHVAYml0 ZGVmZW5kZXIuY29tPgoKLS0tCkNoYW5nZXMgc2luY2UgdjE6CiAtIGZpeGVkIHRoZSBjb2Rpbmdz dHlsZQogLSBzd2FwZWQgX2xvY2tlZC9fdW5sb2NrZWQgbmFtaW5nCiAtIHJld29ya2VkIF9feG1l bV9wb29sX2NoZWNrX2xvY2tlZCgpIGEgYml0CiAtIHVzZWQgYm9vbF90IHdoZXJlIGFwcHJvcHJp YXRlCiAtIG1hZGUgeG1lbV9wb29sX2NoZWNrKCkgdGFrZSBhIHBvb2wgYXJndW1lbnQgd2hpY2gg Y2FuIGJlIE5VTEwKLS0tCiB4ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jIHwgMTEwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3hlbi94 bWFsbG9jLmggfCAgIDcgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veG1hbGxvY190bHNmLmMgYi94 ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCmluZGV4IGE1NzY5YzkuLjg2ODExODUgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24veG1hbGxvY190bHNmLmMKKysrIGIveGVuL2NvbW1vbi94bWFsbG9jX3Rs c2YuYwpAQCAtMTIwLDkgKzEyMCwxMTEgQEAgc3RydWN0IHhtZW1fcG9vbCB7CiAgICAgY2hhciBu YW1lW01BWF9QT09MX05BTUVfTEVOXTsKIH07Cgorc3RhdGljIHN0cnVjdCB4bWVtX3Bvb2wgKnhl bnBvb2w7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBNQVBQSU5HX0lOU0VSVCh1bnNpZ25lZCBsb25n IHIsIGludCAqZmwsIGludCAqc2wpOworCiAvKgogICogSGVscGluZyBmdW5jdGlvbnMKICAqLwor I2lmbmRlZiBOREVCVUcKK3N0YXRpYyBib29sX3QgeG1lbV9wb29sX2NoZWNrX3NpemUoY29uc3Qg c3RydWN0IGJoZHIgKmIsIGludCBmbCwgaW50IHNsKQoreworICAgIHdoaWxlICggYiApCisgICAg eworICAgICAgICBpbnQgX19mbDsKKyAgICAgICAgaW50IF9fc2w7CisKKyAgICAgICAgTUFQUElO R19JTlNFUlQoYi0+c2l6ZSwgJl9fZmwsICZfX3NsKTsKKyAgICAgICAgaWYgKCBfX2ZsICE9IGZs IHx8IF9fc2wgIT0gc2wgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VS UiAieG1lbV9wb29sOiBmb3IgYmxvY2sgJXAgc2l6ZSA9ICV1LCB7IGZsID0gJWQsIHNsID0gJWQg fSBzaG91bGQgYmUgeyBmbCA9ICVkLCBzbCA9ICVkIH1cbiIsCisgICAgICAgICAgICAgICAgICAg YiwgYi0+c2l6ZSwgZmwsIHNsLCBfX2ZsLCBfX3NsKTsKKyAgICAgICAgICAgIHJldHVybiAwOwor ICAgICAgICB9CisgICAgICAgIGIgPSBiLT5wdHIuZnJlZV9wdHIubmV4dDsKKyAgICB9CisgICAg cmV0dXJuIDE7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGZyb20g YSBjb250ZXh0IHdoZXJlIHBvb2wtPmxvY2sgaXMKKyAqIGFscmVhZHkgYWNxdWlyZWQuCisgKgor ICogUmV0dXJucyB0cnVlIGlmIHRoZSBwb29sIGhhcyBiZWVuIGNvcnJ1cHRlZCwgZmFsc2Ugb3Ro ZXJ3aXNlCisgKi8KKyNkZWZpbmUgeG1lbV9wb29sX2NoZWNrX2xvY2tlZChwb29sKSBfX3htZW1f cG9vbF9jaGVja19sb2NrZWQoX19GSUxFX18sIF9fTElORV9fLCBwb29sKQorc3RhdGljIGJvb2xf dCBfX3htZW1fcG9vbF9jaGVja19sb2NrZWQoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNv bnN0IHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCit7CisgICAgaW50IGk7CisgICAgc3RhdGljIGJv b2xfdCBvbmNlID0gMTsKKworICAgIGlmICggIW9uY2UgKQorICAgICAgICBnb3RvIG91dDsKKyAg ICBmb3IgKCBpID0gMDsgaSA8IFJFQUxfRkxJOyBpKysgKQorICAgIHsKKyAgICAgICAgaW50IGZs ID0gKHBvb2wtPmZsX2JpdG1hcCAmICgxIDw8IGkpKSA/IGkgOiAtMTsKKworICAgICAgICBpZiAo IGZsID49IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgajsKKworICAgICAgICAgICAg aWYgKCAhcG9vbC0+c2xfYml0bWFwW2ZsXSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19FUlIgInhtZW1fcG9vbDogdGhlIFRMU0YgYml0bWFwIGlzIGNvcnJ1 cHRlZCAobm9uLWVtcHR5IEZMIHdpdGggZW1wdHkgU0wpXG4iKTsKKyAgICAgICAgICAgICAgICBf X3dhcm4oZmlsZSwgbGluZSk7CisgICAgICAgICAgICAgICAgb25jZSA9IDA7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8 IE1BWF9TTEk7IGorKyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHNsID0g KHBvb2wtPnNsX2JpdG1hcFtmbF0gJiAoMSA8PCBqKSkgPyBqIDogLTE7CisKKyAgICAgICAgICAg ICAgICBpZiAoIHNsIDwgMCApCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg ICAgICAgICAgIGlmICggIXBvb2wtPm1hdHJpeFtmbF1bc2xdICkKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJ4bWVtX3Bvb2w6IHRoZSBU TFNGIGJpdG1hcCBpcyBjb3JydXB0ZWQgKG1hdHJpeFslZF1bJWRdIGlzIE5VTEwpXG4iLAorICAg ICAgICAgICAgICAgICAgICAgICAgZmwsIHNsKTsKKyAgICAgICAgICAgICAgICAgICAgX193YXJu KGZpbGUsIGxpbmUpOworICAgICAgICAgICAgICAgICAgICBvbmNlID0gMDsKKyAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgg IXhtZW1fcG9vbF9jaGVja19zaXplKHBvb2wtPm1hdHJpeFtmbF1bc2xdLCBmbCwgc2wpICkKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJ4 bWVtX3Bvb2w6IHRoZSBUTFNGIGNodW5rIG1hdHJpeCBpcyBjb3JydXB0ZWRcbiIpOworICAgICAg ICAgICAgICAgICAgICBfX3dhcm4oZmlsZSwgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIG9u Y2UgPSAwOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoICFvbmNlICkKKyAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgfQorICAgIH0KK291dDoKKyAgICByZXR1cm4gIW9uY2U7Cit9CisKKyNk ZWZpbmUgeG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKHBvb2wpIF9feG1lbV9wb29sX2NoZWNrX3Vu bG9ja2VkKF9fRklMRV9fLCBfX0xJTkVfXywgcG9vbCkKK3N0YXRpYyBib29sX3QgX194bWVtX3Bv b2xfY2hlY2tfdW5sb2NrZWQoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIHN0cnVjdCB4bWVt X3Bvb2wgKnBvb2wpCit7CisgICAgYm9vbF90IG9vcHM7CisKKyAgICBzcGluX2xvY2soJnBvb2wt PmxvY2spOworICAgIG9vcHMgPSBfX3htZW1fcG9vbF9jaGVja19sb2NrZWQoZmlsZSwgbGluZSwg cG9vbCk7CisgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOworICAgIHJldHVybiBvb3BzOwor fQorCitib29sX3QgX194bWVtX3Bvb2xfY2hlY2soY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUs IHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCit7CisgICAgcmV0dXJuIF9feG1lbV9wb29sX2NoZWNr X3VubG9ja2VkKGZpbGUsIGxpbmUsIHBvb2wgPyBwb29sIDogeGVucG9vbCk7Cit9CisjZWxzZQor I2RlZmluZSB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBvb2wpICgodm9pZCkocG9vbCkpCisjZGVm aW5lIHhtZW1fcG9vbF9jaGVja191bmxvY2tlZChwb29sKSAoKHZvaWQpKHBvb2wpKQorI2VuZGlm CgogLyoqCiAgKiBSZXR1cm5zIGluZGV4ZXMgKGZsLCBzbCkgb2YgdGhlIGxpc3QgdXNlZCB0byBz ZXJ2ZSByZXF1ZXN0IG9mIHNpemUgcgpAQCAtMzgxLDYgKzQ4Myw4IEBAIHZvaWQgKnhtZW1fcG9v bF9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCiAgICAg aW50IGZsLCBzbDsKICAgICB1bnNpZ25lZCBsb25nIHRtcF9zaXplOwoKKyAgICB4bWVtX3Bvb2xf Y2hlY2tfdW5sb2NrZWQocG9vbCk7CisKICAgICBpZiAoIHBvb2wtPmluaXRfcmVnaW9uID09IE5V TEwgKQogICAgIHsKICAgICAgICAgaWYgKCAocmVnaW9uID0gcG9vbC0+Z2V0X21lbShwb29sLT5p bml0X3NpemUpKSA9PSBOVUxMICkKQEAgLTQ0MiwxMSArNTQ2LDEzIEBAIHZvaWQgKnhtZW1fcG9v bF9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCgogICAg IHBvb2wtPnVzZWRfc2l6ZSArPSAoYi0+c2l6ZSAmIEJMT0NLX1NJWkVfTUFTSykgKyBCSERSX09W RVJIRUFEOwoKKyAgICB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBvb2wpOwogICAgIHNwaW5fdW5s b2NrKCZwb29sLT5sb2NrKTsKICAgICByZXR1cm4gKHZvaWQgKiliLT5wdHIuYnVmZmVyOwoKICAg ICAvKiBGYWlsZWQgYWxsb2MgKi8KICBvdXRfbG9ja2VkOgorICAgIHhtZW1fcG9vbF9jaGVja19s b2NrZWQocG9vbCk7CiAgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwoKICBvdXQ6CkBAIC00 NjQsNiArNTcwLDcgQEAgdm9pZCB4bWVtX3Bvb2xfZnJlZSh2b2lkICpwdHIsIHN0cnVjdCB4bWVt X3Bvb2wgKnBvb2wpCiAgICAgYiA9IChzdHJ1Y3QgYmhkciAqKSgoY2hhciAqKSBwdHIgLSBCSERS X09WRVJIRUFEKTsKCiAgICAgc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKKyAgICB4bWVtX3Bvb2xf Y2hlY2tfbG9ja2VkKHBvb2wpOwogICAgIGItPnNpemUgfD0gRlJFRV9CTE9DSzsKICAgICBwb29s LT51c2VkX3NpemUgLT0gKGItPnNpemUgJiBCTE9DS19TSVpFX01BU0spICsgQkhEUl9PVkVSSEVB RDsKICAgICBiLT5wdHIuZnJlZV9wdHIgPSAoc3RydWN0IGZyZWVfcHRyKSB7IE5VTEwsIE5VTEx9 OwpAQCAtNTAwLDYgKzYwNyw3IEBAIHZvaWQgeG1lbV9wb29sX2ZyZWUodm9pZCAqcHRyLCBzdHJ1 Y3QgeG1lbV9wb29sICpwb29sKQogICAgIHRtcF9iLT5zaXplIHw9IFBSRVZfRlJFRTsKICAgICB0 bXBfYi0+cHJldl9oZHIgPSBiOwogIG91dDoKKyAgICB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBv b2wpOwogICAgIHNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKIH0KCkBAIC01MTIsOCArNjIwLDYg QEAgaW50IHhtZW1fcG9vbF9tYXhhbGxvYyhzdHJ1Y3QgeG1lbV9wb29sICpwb29sKQogICogR2x1 ZSBmb3IgeG1hbGxvYygpLgogICovCgotc3RhdGljIHN0cnVjdCB4bWVtX3Bvb2wgKnhlbnBvb2w7 Ci0KIHN0YXRpYyB2b2lkICp4bWFsbG9jX3Bvb2xfZ2V0KHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsK ICAgICBBU1NFUlQoc2l6ZSA9PSBQQUdFX1NJWkUpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eGVuL3htYWxsb2MuaCBiL3hlbi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKaW5kZXggMjRhOTlhYy4u YWQ0ODkzMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaAorKysgYi94ZW4v aW5jbHVkZS94ZW4veG1hbGxvYy5oCkBAIC0xMjMsNCArMTIzLDExIEBAIHVuc2lnbmVkIGxvbmcg eG1lbV9wb29sX2dldF91c2VkX3NpemUoc3RydWN0IHhtZW1fcG9vbCAqcG9vbCk7CiAgKi8KIHVu c2lnbmVkIGxvbmcgeG1lbV9wb29sX2dldF90b3RhbF9zaXplKHN0cnVjdCB4bWVtX3Bvb2wgKnBv b2wpOwoKKyNpZm5kZWYgTkRFQlVHCisjZGVmaW5lIHhtZW1fcG9vbF9jaGVjayhwb29sKSBfX3ht ZW1fcG9vbF9jaGVjayhfX0ZJTEVfXywgX19MSU5FX18sIHBvb2wpCitib29sX3QgX194bWVtX3Bv b2xfY2hlY2soY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIHN0cnVjdCB4bWVtX3Bvb2wgKnBv b2wpOworI2Vsc2UKKyNkZWZpbmUgeG1lbV9wb29sX2NoZWNrKHBvb2wpICgodm9pZCkwKQorI2Vu ZGlmCisKICNlbmRpZiAvKiBfX1hNQUxMT0NfSF9fICovCi0tCjIuMi4wCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK