Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Dec 2002 11:10:03 -0800 (PST)
From:      "Peter Edwards" <pmedwards@eircom.net>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/45994: Pages marked read-only via mprotect are zeroed in core files
Message-ID:  <200212101910.gBAJA3AC010009@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/45994; it has been noted by GNATS.

From: "Peter Edwards" <pmedwards@eircom.net>
To: Archie Cobbs <archie@packetdesign.com>,
	Peter Edwards <pmedwards@eircom.net>
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: kern/45994: Pages marked read-only via mprotect are zeroed in core files
Date: Tue, 10 Dec 2002 18:58:30 +0000

 This is a multi-part message in MIME format.
 ---------O55DF2D7B4YK0IC6O5NW1WAD
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 Ok.
 I had a quick look, and it was easier than I thought.
 The following patch (which should be applied _instead_ of the noddy one I
 previously posted) Does the following
 
 1: Update rtld_elf's map_object to set MAP_NOCORE when mmap()ing readonly
 sections.
 
 2: Causes elf_load_section (kern/imgact_elf.c) to do the same (by passing
 MAP_DISABLE_COREDUMP to the "COW" flags of vm_map_insert())
 
 3: Reverses the polarity of the sysctl from the old patch, so, by default
 the corefiles _include_ readonly pages.
 
 A quick test shows that both a static and dynamic executable produce
 corefiles of the same size, irrespective of the setting of this flag, and
 a simple program that mmaps a chunk of anonymous readonly data is grows
 and shrinks by the size of the extra mmaped data, depending on the setting
 of the sysctl.
 
 Archie, I'd appreciate any feedback if you install this patch. I'll be
 running a kernel with it here, anyway. Reviews from any VM hackers would
 be probably an idea, before committing :-)
 Cheers,
 Peter.
 
 
 ---------O55DF2D7B4YK0IC6O5NW1WAD
 Content-Type: application/octet-stream
 Content-Disposition: attachment; filename="coredump.diff"
 Content-Transfer-Encoding: base64
 
 SW5kZXg6IGxpYmV4ZWMvcnRsZC1lbGYvbWFwX29iamVjdC5jCj09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9wdWIvRnJlZUJTRC9kZXZlbG9w
 bWVudC9GcmVlQlNELUNWUy9zcmMvbGliZXhlYy9ydGxkLWVsZi9tYXBfb2Jq
 ZWN0LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNy4yLjEKZGlmZiAtdSAt
 cjEuNy4yLjEgbWFwX29iamVjdC5jCi0tLSBsaWJleGVjL3J0bGQtZWxmL21h
 cF9vYmplY3QuYwkyOSBOb3YgMjAwMiAxNjowNToxNCAtMDAwMAkxLjcuMi4x
 CisrKyBsaWJleGVjL3J0bGQtZWxmL21hcF9vYmplY3QuYwkxMCBEZWMgMjAw
 MiAxNTowMjo1OSAtMDAwMApAQCAtMzcsNyArMzcsOCBAQAogCiAjaW5jbHVk
 ZSAicnRsZC5oIgogCi1zdGF0aWMgaW50IHByb3RmbGFncyhpbnQpOwkvKiBF
 bGYgZmxhZ3MgLT4gbW1hcCBwcm90ZWN0aW9uICovCitzdGF0aWMgaW50IGNv
 bnZlcnRfcHJvdChpbnQpOwkvKiBFbGYgZmxhZ3MgLT4gbW1hcCBwcm90ZWN0
 aW9uICovCitzdGF0aWMgaW50IGNvbnZlcnRfZmxhZ3MoaW50KTsgLyogRWxm
 IGZsYWdzIC0+IG1tYXAgZmxhZ3MgKi8KIAogLyoKICAqIE1hcCBhIHNoYXJl
 ZCBvYmplY3QgaW50byBtZW1vcnkuICBUaGUgImZkIiBhcmd1bWVudCBpcyBh
 IGZpbGUgZGVzY3JpcHRvciwKQEAgLTc0LDYgKzc1LDcgQEAKICAgICBFbGZf
 QWRkciBkYXRhX3ZsaW1pdDsKICAgICBjYWRkcl90IGRhdGFfYWRkcjsKICAg
 ICBpbnQgZGF0YV9wcm90OworICAgIGludCBkYXRhX2ZsYWdzOwogICAgIEVs
 Zl9BZGRyIGNsZWFyX3ZhZGRyOwogICAgIGNhZGRyX3QgY2xlYXJfYWRkcjsK
 ICAgICBjYWRkcl90IGNsZWFyX3BhZ2U7CkBAIC0xODgsOCArMTkwLDggQEAK
 ICAgICBtYXBzaXplID0gYmFzZV92bGltaXQgLSBiYXNlX3ZhZGRyOwogICAg
 IGJhc2VfYWRkciA9IHUuaGRyLmVfdHlwZSA9PSBFVF9FWEVDID8gKGNhZGRy
 X3QpIGJhc2VfdmFkZHIgOiBOVUxMOwogCi0gICAgbWFwYmFzZSA9IG1tYXAo
 YmFzZV9hZGRyLCBtYXBzaXplLCBwcm90ZmxhZ3Moc2Vnc1swXS0+cF9mbGFn
 cyksCi0gICAgICBNQVBfUFJJVkFURSwgZmQsIGJhc2Vfb2Zmc2V0KTsKKyAg
 ICBtYXBiYXNlID0gbW1hcChiYXNlX2FkZHIsIG1hcHNpemUsIGNvbnZlcnRf
 cHJvdChzZWdzWzBdLT5wX2ZsYWdzKSwKKyAgICAgIGNvbnZlcnRfZmxhZ3Mo
 c2Vnc1swXS0+cF9mbGFncyksIGZkLCBiYXNlX29mZnNldCk7CiAgICAgaWYg
 KG1hcGJhc2UgPT0gKGNhZGRyX3QpIC0xKSB7CiAJX3J0bGRfZXJyb3IoIiVz
 OiBtbWFwIG9mIGVudGlyZSBhZGRyZXNzIHNwYWNlIGZhaWxlZDogJXMiLAog
 CSAgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKQEAgLTIwOCwxMCArMjEwLDEx
 IEBACiAJZGF0YV92YWRkciA9IHRydW5jX3BhZ2Uoc2Vnc1tpXS0+cF92YWRk
 cik7CiAJZGF0YV92bGltaXQgPSByb3VuZF9wYWdlKHNlZ3NbaV0tPnBfdmFk
 ZHIgKyBzZWdzW2ldLT5wX2ZpbGVzeik7CiAJZGF0YV9hZGRyID0gbWFwYmFz
 ZSArIChkYXRhX3ZhZGRyIC0gYmFzZV92YWRkcik7Ci0JZGF0YV9wcm90ID0g
 cHJvdGZsYWdzKHNlZ3NbaV0tPnBfZmxhZ3MpOworCWRhdGFfcHJvdCA9IGNv
 bnZlcnRfcHJvdChzZWdzW2ldLT5wX2ZsYWdzKTsKKwlkYXRhX2ZsYWdzID0g
 Y29udmVydF9mbGFncyhzZWdzW2ldLT5wX2ZsYWdzKSB8IE1BUF9GSVhFRDsK
 IAkvKiBEbyBub3QgY2FsbCBtbWFwIG9uIHRoZSBmaXJzdCBzZWdtZW50IC0g
 dGhpcyBpcyByZWR1bmRhbnQgKi8KIAlpZiAoaSAmJiBtbWFwKGRhdGFfYWRk
 ciwgZGF0YV92bGltaXQgLSBkYXRhX3ZhZGRyLCBkYXRhX3Byb3QsCi0JICBN
 QVBfUFJJVkFURXxNQVBfRklYRUQsIGZkLCBkYXRhX29mZnNldCkgPT0gKGNh
 ZGRyX3QpIC0xKSB7CisJICBkYXRhX2ZsYWdzLCBmZCwgZGF0YV9vZmZzZXQp
 ID09IChjYWRkcl90KSAtMSkgewogCSAgICBfcnRsZF9lcnJvcigiJXM6IG1t
 YXAgb2YgZGF0YSBmYWlsZWQ6ICVzIiwgcGF0aCwgc3RyZXJyb3IoZXJybm8p
 KTsKIAkgICAgcmV0dXJuIE5VTEw7CiAJfQpAQCAtMzE0LDcgKzMxNyw3IEBA
 CiAgKiBmbGFncyBmb3IgTU1BUC4KICAqLwogc3RhdGljIGludAotcHJvdGZs
 YWdzKGludCBlbGZmbGFncykKK2NvbnZlcnRfcHJvdChpbnQgZWxmZmxhZ3Mp
 CiB7CiAgICAgaW50IHByb3QgPSAwOwogICAgIGlmIChlbGZmbGFncyAmIFBG
 X1IpCkBAIC0zMjQsNCArMzI3LDE4IEBACiAgICAgaWYgKGVsZmZsYWdzICYg
 UEZfWCkKIAlwcm90IHw9IFBST1RfRVhFQzsKICAgICByZXR1cm4gcHJvdDsK
 K30KKworc3RhdGljIGludAorY29udmVydF9mbGFncyhpbnQgZWxmZmxhZ3Mp
 Cit7CisgICAgaW50IGZsYWdzID0gTUFQX1BSSVZBVEU7IC8qIEFsbCBtYXBw
 aW5ncyBhcmUgcHJpdmF0ZSAqLworCisgICAgLyoKKyAgICAgKiBSZWFkb25s
 eSBtYXBwaW5ncyBhcmUgbWFya2VkICJNQVBfTk9DT1JFIiwgYmVjYXVzZSB0
 aGV5IGNhbiBiZQorICAgICAqIHJlY29uc3RydWN0ZWQgYnkgYSBkZWJ1Z2dl
 ci4KKyAgICAgKi8KKyAgICBpZiAoIShlbGZmbGFncyAmIFBGX1cpKQorCWZs
 YWdzIHw9IE1BUF9OT0NPUkU7CisgICAgcmV0dXJuIGZsYWdzOwogfQpJbmRl
 eDogc3lzL2tlcm4vaW1nYWN0X2VsZi5jCj09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT0KUkNTIGZpbGU6IC9wdWIvRnJlZUJTRC9kZXZlbG9wbWVudC9GcmVlQlNE
 LUNWUy9zcmMvc3lzL2tlcm4vaW1nYWN0X2VsZi5jLHYKcmV0cmlldmluZyBy
 ZXZpc2lvbiAxLjczLjIuMTEKZGlmZiAtdSAtcjEuNzMuMi4xMSBpbWdhY3Rf
 ZWxmLmMKLS0tIHN5cy9rZXJuL2ltZ2FjdF9lbGYuYwk5IFNlcCAyMDAyIDE3
 OjM4OjQ3IC0wMDAwCTEuNzMuMi4xMQorKysgc3lzL2tlcm4vaW1nYWN0X2Vs
 Zi5jCTEwIERlYyAyMDAyIDE4OjQ4OjQ3IC0wMDAwCkBAIC03OSw3ICs3OSwx
 MCBAQAogc3RhdGljIGludCBleGVjX2VsZl9pbWdhY3QgX19QKChzdHJ1Y3Qg
 aW1hZ2VfcGFyYW1zICppbWdwKSk7CiAKIHN0YXRpYyBpbnQgZWxmX3RyYWNl
 ID0gMDsKK3N0YXRpYyBpbnQgZWxmX2R1bXByZWFkb25seSA9IDA7CisKIFNZ
 U0NUTF9JTlQoX2RlYnVnLCBPSURfQVVUTywgZWxmX3RyYWNlLCBDVExGTEFH
 X1JXLCAmZWxmX3RyYWNlLCAwLCAiIik7CitTWVNDVExfSU5UKF9kZWJ1Zywg
 T0lEX0FVVE8sIGVsZl9kdW1wcmVhZG9ubHksIENUTEZMQUdfUlcsICZlbGZf
 ZHVtcHJlYWRvbmx5LCAwLCAiIik7CiAKIHN0YXRpYyBzdHJ1Y3Qgc3lzZW50
 dmVjIGVsZl9mcmVlYnNkX3N5c3ZlYyA9IHsKICAgICAgICAgU1lTX01BWFNZ
 U0NBTEwsCkBAIC0xODUsNyArMTg4LDcgQEAKIHsKIAlzaXplX3QgbWFwX2xl
 bjsKIAl2bV9vZmZzZXRfdCBtYXBfYWRkcjsKLQlpbnQgZXJyb3IsIHJ2Owor
 CWludCBlcnJvciwgcnYsIGNvdzsKIAlzaXplX3QgY29weV9sZW47CiAJdm1f
 b2JqZWN0X3Qgb2JqZWN0OwogCXZtX29mZnNldF90IGZpbGVfYWRkcjsKQEAg
 LTIyNSw2ICsyMjgsMTEgQEAKIAogCWlmIChtYXBfbGVuICE9IDApIHsKIAkJ
 dm1fb2JqZWN0X3JlZmVyZW5jZShvYmplY3QpOworCisJCS8qIGNvdyBmbGFn
 czogZG9uJ3QgZHVtcCByZWFkb25seSBzZWN0aW9ucyBpbiBjb3JlICovCisJ
 CWNvdyA9IE1BUF9DT1BZX09OX1dSSVRFIHwgTUFQX1BSRUZBVUxUIHwKKwkJ
 ICAgIChwcm90ICYgVk1fUFJPVF9XUklURSA/IDAgOiBNQVBfRElTQUJMRV9D
 T1JFRFVNUCk7CisKIAkJdm1fbWFwX2xvY2soJnZtc3BhY2UtPnZtX21hcCk7
 CiAJCXJ2ID0gdm1fbWFwX2luc2VydCgmdm1zcGFjZS0+dm1fbWFwLAogCQkJ
 CSAgICAgIG9iamVjdCwKQEAgLTIzMyw3ICsyNDEsNyBAQAogCQkJCSAgICAg
 IG1hcF9hZGRyICsgbWFwX2xlbiwvKiB2aXJ0dWFsIGVuZCAqLwogCQkJCSAg
 ICAgIHByb3QsCiAJCQkJICAgICAgVk1fUFJPVF9BTEwsCi0JCQkJICAgICAg
 TUFQX0NPUFlfT05fV1JJVEUgfCBNQVBfUFJFRkFVTFQpOworCQkJCSAgICAg
 IGNvdyk7CiAJCXZtX21hcF91bmxvY2soJnZtc3BhY2UtPnZtX21hcCk7CiAJ
 CWlmIChydiAhPSBLRVJOX1NVQ0NFU1MpIHsKIAkJCXZtX29iamVjdF9kZWFs
 bG9jYXRlKG9iamVjdCk7CkBAIC00OTMsNiArNTAxLDExIEBACiAJICogRnJv
 bSB0aGlzIHBvaW50IG9uLCB3ZSBtYXkgaGF2ZSByZXNvdXJjZXMgdGhhdCBu
 ZWVkIHRvIGJlIGZyZWVkLgogCSAqLwogCisJaWYgKChlcnJvciA9IGV4ZWNf
 ZXh0cmFjdF9zdHJpbmdzKGltZ3ApKSAhPSAwKQorCQlnb3RvIGZhaWw7CisK
 KwlleGVjX25ld192bXNwYWNlKGltZ3ApOworCiAJLyoKIAkgKiBZZWFoLCBJ
 J20gcGFyYW5vaWQuICBUaGVyZSBpcyBldmVyeSByZWFzb24gaW4gdGhlIHdv
 cmxkIHRvIGdldAogCSAqIFZURVhUIG5vdyBzaW5jZSBmcm9tIGhlcmUgb24g
 b3V0LCB0aGVyZSBhcmUgcGxhY2VzIHdlIGNhbiBoYXZlCkBAIC01MDMsMTEg
 KzUxNiw2IEBACiAJaW1ncC0+dnAtPnZfZmxhZyB8PSBWVEVYVDsKIAlzaW1w
 bGVfdW5sb2NrKCZpbWdwLT52cC0+dl9pbnRlcmxvY2spOwogCi0JaWYgKChl
 cnJvciA9IGV4ZWNfZXh0cmFjdF9zdHJpbmdzKGltZ3ApKSAhPSAwKQotCQln
 b3RvIGZhaWw7Ci0KLQlleGVjX25ld192bXNwYWNlKGltZ3ApOwotCiAJdm1z
 cGFjZSA9IGltZ3AtPnByb2MtPnBfdm1zcGFjZTsKIAogCWZvciAoaSA9IDA7
 IGkgPCBoZHItPmVfcGhudW07IGkrKykgewpAQCAtODg3LDggKzg5NSw5IEBA
 CiAJCXZtX29iamVjdF90IG9iajsKIAogCQlpZiAoKGVudHJ5LT5lZmxhZ3Mg
 JiBNQVBfRU5UUllfSVNfU1VCX01BUCkgfHwKKwkJICAgIChlbGZfZHVtcHJl
 YWRvbmx5ICYmCiAJCSAgICAoZW50cnktPnByb3RlY3Rpb24gJiAoVk1fUFJP
 VF9SRUFEfFZNX1BST1RfV1JJVEUpKSAhPQotCQkgICAgKFZNX1BST1RfUkVB
 RHxWTV9QUk9UX1dSSVRFKSkKKwkJICAgIChWTV9QUk9UX1JFQUR8Vk1fUFJP
 VF9XUklURSkpKQogCQkJY29udGludWU7CiAKIAkJLyoKQEAgLTg5Niw4ICs5
 MDUsMTAgQEAKIAkJKiogTUFQX05PQ09SRSBpcyBzZXQgaW4gbW1hcCgyKSBv
 ciBNQURWX05PQ09SRSBpbgogCQkqKiBtYWR2aXNlKDIpLgogCQkqLwotCQlp
 ZiAoZW50cnktPmVmbGFncyAmIE1BUF9FTlRSWV9OT0NPUkVEVU1QKQorCQlp
 ZiAoZW50cnktPmVmbGFncyAmIE1BUF9FTlRSWV9OT0NPUkVEVU1QKSB7CisJ
 CQlwcmludGYoImV4Y2x1ZGluZyBNQVBfRU5UUllfTk9DT1JFRFVNUCBzZWdt
 ZW50Iik7CiAJCQljb250aW51ZTsKKwkJfQogCiAJCWlmICgob2JqID0gZW50
 cnktPm9iamVjdC52bV9vYmplY3QpID09IE5VTEwpCiAJCQljb250aW51ZTsK
 
 ---------O55DF2D7B4YK0IC6O5NW1WAD--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200212101910.gBAJA3AC010009>