[PATCH] Wipe out Lisp password data using memset(), not #'fill

Aidan Kehoe <[email protected]> Sat, 11 Apr 2015 21:04:32 +0100
Newsgroups gmane.emacs.xemacs.patches
Message-ID <[email protected]>
CkhpIEplcnJ5IC0tCgpUaGlzIGFsc28gc3RydWNrIG1lIHdoZW4gc2Nyb2xsaW5nIHRocm91Z2gg
dGxzLmMuCgpCZXN0LAoKQWlkYW4KCjIwMTUtMDQtMTEgIEFpZGFuIEtlaG9lICA8a2Vob2VhQHBh
cmhhc2FyZC5uZXQ+CgoJKiB0bHMuYyAobnNzX3BrMTFfcGFzc3dvcmQpOgoJKiB0bHMuYyAoZ251
dGxzX3BrMTFfcGFzc3dvcmQpOgoJKiB0bHMuYyAob3BlbnNzbF9wYXNzd29yZCk6CglXaXBlIG91
dCB0aGUgTGlzcCBzdHJpbmcgcGFzc3dvcmQgdXNpbmcgbWVtc2V0KCkgcmF0aGVyIHRoYW4KCSMn
ZmlsbCwgd2hpY2ggY2FuIHJlYWxsb2NhdGUgdGhlIHN0cmluZyBkYXRhIHdoZW4gYSBzdHJpbmcn
cyBieXRlCglsZW5ndGggY2hhbmdlcy4KCmRpZmYgLXIgYTg1ZWZkYWJlMjM3IHNyYy90bHMuYwot
LS0gYS9zcmMvdGxzLmMJVGh1IEFwciAwOSAxNDo1NDozNyAyMDE1ICswMTAwCisrKyBiL3NyYy90
bHMuYwlTYXQgQXByIDExIDIxOjAwOjI3IDIwMTUgKzAxMDAKQEAgLTMwMiw3ICszMDIsNyBAQAog
c3RhdGljIGNoYXIgKgogbnNzX3BrMTFfcGFzc3dvcmQgKFBLMTFTbG90SW5mbyAqc2xvdCwgUFJC
b29sIHJldHJ5LCB2b2lkICogVU5VU0VEIChhcmcpKQogewotICBMaXNwX09iamVjdCBsc3BfcGFz
c3dvcmQsIGFyZ3NbMl07CisgIExpc3BfT2JqZWN0IGxzcF9wYXNzd29yZDsKICAgRXh0Ynl0ZSAq
Y19wYXNzd29yZCwgKm5zc19wYXNzd29yZDsKICAgY29uc3QgRXh0Ynl0ZSAqdG9rZW5fbmFtZTsK
IApAQCAtMzE4LDEwICszMTgsMTQgQEAKICAgY19wYXNzd29yZCA9IExJU1BfU1RSSU5HX1RPX0VY
VEVSTkFMIChsc3BfcGFzc3dvcmQsIFFuYXRpdmUpOwogICBuc3NfcGFzc3dvcmQgPSBQTF9zdHJk
dXAgKGNfcGFzc3dvcmQpOwogCi0gIC8qIFdpcGUgb3V0IHRoZSBwYXNzd29yZCBvbiB0aGUgc3Rh
Y2sgYW5kIGluIHRoZSBMaXNwIHN0cmluZyAqLwotICBhcmdzWzBdID0gbHNwX3Bhc3N3b3JkOwot
ICBhcmdzWzFdID0gbWFrZV9jaGFyICgnKicpOwotICBGZmlsbCAoMiwgYXJncyk7CisgIC8qIFdp
cGUgb3V0IHRoZSBwYXNzd29yZCBvbiB0aGUgc3RhY2sgYW5kIGluIHRoZSBMaXNwIHN0cmluZy4g
WW91IG1heSBiZQorICAgICB0ZW1wdGVkIHRvIGNhbGwgIydmaWxsIGhlcmU7IGRvbid0LCBpdCBt
YXkgcmVhbGxvYyB0aGUgc3RyaW5nIGRhdGEgYW5kCisgICAgIGxlYXZlIHRoZSBvcmlnaW5hbCB1
bmNsZWFyZWQuICovCisgIG1lbXNldCAoWFNUUklOR19EQVRBIChsc3BfcGFzc3dvcmQpLCAnKics
IFhTVFJJTkdfTEVOR1RIIChsc3BfcGFzc3dvcmQpKTsKKyAgaW5pdF9zdHJpbmdfYXNjaWlfYmVn
aW4gKGxzcF9wYXNzd29yZCk7CisgIGJ1bXBfc3RyaW5nX21vZGlmZiAobHNwX3Bhc3N3b3JkKTsK
KyAgc2xlZGdlaGFtbWVyX2NoZWNrX2FzY2lpX2JlZ2luIChsc3BfcGFzc3dvcmQpOworCiAgIG1l
bXNldCAoY19wYXNzd29yZCwgJyonLCBzdHJsZW4gKGNfcGFzc3dvcmQpKTsKICAgcmV0dXJuIG5z
c19wYXNzd29yZDsKIH0KQEAgLTcyOCwxMCArNzMyLDE0IEBACiAgIG1lbWNweSAocGluLCBjX3Bh
c3N3b3JkLCBsZW4pOwogICBwaW5bbGVuXSA9ICdcMCc7CiAKLSAgLyogV2lwZSBvdXQgdGhlIHBh
c3N3b3JkIG9uIHRoZSBzdGFjayBhbmQgaW4gdGhlIExpc3Agc3RyaW5nICovCi0gIGFyZ3NbMF0g
PSBsc3BfcGFzc3dvcmQ7Ci0gIGFyZ3NbMV0gPSBtYWtlX2NoYXIgKCcqJyk7Ci0gIEZmaWxsICgy
LCBhcmdzKTsKKyAgLyogV2lwZSBvdXQgdGhlIHBhc3N3b3JkIG9uIHRoZSBzdGFjayBhbmQgaW4g
dGhlIExpc3Agc3RyaW5nLiBZb3UgbWF5IGJlCisgICAgIHRlbXB0ZWQgdG8gY2FsbCAjJ2ZpbGwg
aGVyZTsgZG9uJ3QsIGl0IG1heSByZWFsbG9jIHRoZSBzdHJpbmcgZGF0YSBhbmQKKyAgICAgbGVh
dmUgdGhlIG9yaWdpbmFsIHVuY2xlYXJlZC4gKi8KKyAgbWVtc2V0IChYU1RSSU5HX0RBVEEgKGxz
cF9wYXNzd29yZCksICcqJywgWFNUUklOR19MRU5HVEggKGxzcF9wYXNzd29yZCkpOworICBpbml0
X3N0cmluZ19hc2NpaV9iZWdpbiAobHNwX3Bhc3N3b3JkKTsKKyAgYnVtcF9zdHJpbmdfbW9kaWZm
IChsc3BfcGFzc3dvcmQpOworICBzbGVkZ2VoYW1tZXJfY2hlY2tfYXNjaWlfYmVnaW4gKGxzcF9w
YXNzd29yZCk7CisKICAgbWVtc2V0IChjX3Bhc3N3b3JkLCAnKicsIHN0cmxlbiAoY19wYXNzd29y
ZCkpOwogICByZXR1cm4gR05VVExTX0VfU1VDQ0VTUzsKIH0KQEAgLTEwNzUsNyArMTA4Myw3IEBA
CiBvcGVuc3NsX3Bhc3N3b3JkIChjaGFyICpidWYsIGludCBzaXplLCBpbnQgVU5VU0VEIChyd2Zs
YWcpLAogCQkgIHZvaWQgKlVOVVNFRCAodXNlcmRhdGEpKQogewotICBMaXNwX09iamVjdCBsc3Bf
cGFzc3dvcmQsIGFyZ3NbMl07CisgIExpc3BfT2JqZWN0IGxzcF9wYXNzd29yZDsKICAgRXh0Ynl0
ZSAqY19wYXNzd29yZDsKIAogICBsc3BfcGFzc3dvcmQgPQpAQCAtMTA4MywxMCArMTA5MSwxNCBA
QAogICBjX3Bhc3N3b3JkID0gTElTUF9TVFJJTkdfVE9fRVhURVJOQUwgKGxzcF9wYXNzd29yZCwg
UW5hdGl2ZSk7CiAgIHN0cm5jcHkgKGJ1ZiwgY19wYXNzd29yZCwgc2l6ZSk7CiAKLSAgLyogV2lw
ZSBvdXQgdGhlIHBhc3N3b3JkIG9uIHRoZSBzdGFjayBhbmQgaW4gdGhlIExpc3Agc3RyaW5nICov
Ci0gIGFyZ3NbMF0gPSBsc3BfcGFzc3dvcmQ7Ci0gIGFyZ3NbMV0gPSBtYWtlX2NoYXIgKCcqJyk7
Ci0gIEZmaWxsICgyLCBhcmdzKTsKKyAgLyogV2lwZSBvdXQgdGhlIHBhc3N3b3JkIG9uIHRoZSBz
dGFjayBhbmQgaW4gdGhlIExpc3Agc3RyaW5nLiBZb3UgbWF5IGJlCisgICAgIHRlbXB0ZWQgdG8g
Y2FsbCAjJ2ZpbGwgaGVyZTsgZG9uJ3QsIGl0IG1heSByZWFsbG9jIHRoZSBzdHJpbmcgZGF0YSBh
bmQKKyAgICAgbGVhdmUgdGhlIG9yaWdpbmFsIHVuY2xlYXJlZC4gKi8KKyAgbWVtc2V0IChYU1RS
SU5HX0RBVEEgKGxzcF9wYXNzd29yZCksICcqJywgWFNUUklOR19MRU5HVEggKGxzcF9wYXNzd29y
ZCkpOworICBpbml0X3N0cmluZ19hc2NpaV9iZWdpbiAobHNwX3Bhc3N3b3JkKTsKKyAgYnVtcF9z
dHJpbmdfbW9kaWZmIChsc3BfcGFzc3dvcmQpOworICBzbGVkZ2VoYW1tZXJfY2hlY2tfYXNjaWlf
YmVnaW4gKGxzcF9wYXNzd29yZCk7CisKICAgbWVtc2V0IChjX3Bhc3N3b3JkLCAnKicsIHN0cmxl
biAoY19wYXNzd29yZCkpOwogICByZXR1cm4gKGludCkgc3RybGVuIChidWYpOwogfQoKLS0gCuKA
mFRyYW1hZG9sIGlzIGZ1cnRoZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdvcmtpbmcgdGhl
bSBb4oCmXSAoYXMgZHJhZnQKYW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBkbyBub3QgZ2V0
IHRpcmVkIHF1aWNrbHkuIOKApuKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBTZXB0IDIwMTQs
IGRlc2NyaWJpbmcgdGhlIHNvY2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0cmFtYWRvbCBo
YXZpbmcgYmVlbiBmb3VuZCBpbiBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMgbWFpbGluZyBs
aXN0ClhFbWFjcy1QYXRjaGVzQHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFjcy5vcmcvbWFp
bG1hbi9saXN0aW5mby94ZW1hY3MtcGF0Y2hlcwo=