From mboxrd@z Thu Jan 1 00:00:00 1970 Date: 17 Jan 2002 06:39:30 -0000 Message-ID: <20020117063930.16642.qmail@mailweb34.rediffmail.com> MIME-Version: 1.0 From: "mehul radheshyam choube" Reply-To: "mehul radheshyam choube" Subject: unable to free memory details Content-type: multipart/mixed; boundary="Next_1011249569---0-203.199.83.32-16637" Sender: owner-linux-mm@kvack.org Return-Path: To: kplug-lpsg@kernel-panic.org Cc: kplug-newbie@kernel-panic.org, linux-mm@kvack.org, plug-mail@plug.org.in List-ID: --Next_1011249569---0-203.199.83.32-16637 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline hi friends, =0D=0A here i am giving my c program file(snapshot of the wh= ole program). =0D=0A i am getting a core dump error problem while freein= g dynamically allocated memory. =0D=0A the code is big with many functio= ns.i have given the functions along as i format the value contained in the = pointer variable(i think must be the problem). =0D=0A if this mail is in= convienence to anybody i am sorry. =0D=0A =0D=0A waiting = for help. =0D=0A=0D=0Amehul. =0A --Next_1011249569---0-203.199.83.32-16637 Content-type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attach; filename="freemem.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmlu Zy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgojZGVmaW5lIFJFQURfTk9fQ0hBUlMgICAgICAg ODk2CgojZGVmaW5lIEtFWV9WQVJfTEVOICAgICAgICAgMjUKCiNkZWZpbmUgVkFMVUVfVkFS X0xFTiAgICAgICA4OTYKCiNkZWZpbmUgUVNUUl9WQVJfTEVOICAgICAgICAyMDQ4CgojZGVm aW5lIFZBTFVFX0RFTElNICAgICAgICAgIjo6IgoKI2RlZmluZSBMRU5fVkFMVUVfREVMSU0g ICAgIDIKCiNkZWZpbmUgTkFNRV9TVFJfVkFMVUUgICAgICAibmFtZSIKCiNkZWZpbmUgTk9f T0ZfRklFTERTICAgICAgICA0CgpjaGFyICAgICAgICAgICAgcVN0cltRU1RSX1ZBUl9MRU4r MV07CmNoYXIgICAgICAgICAgICAqZGJGaWVsZFN0cltOT19PRl9GSUVMRFNdOwpjaGFyICAg ICAgICAgICAgKmRiVmFsU3RyW05PX09GX0ZJRUxEU107Cgp2b2lkIGdldF9rZXlfdmFsKGNo YXIgKmtleSxjaGFyICp2YWx1ZSxjaGFyICpidWYsY2hhciAqZGVsaW0pCnsKICAgICBzdHJj cHkodmFsdWUsKHN0cnN0cihidWYsZGVsaW0pK3N0cmxlbihkZWxpbSkpKTsKCiAgICAgc3Ry Y3B5KGtleSxzdHJzZXAoJmJ1ZixkZWxpbSkpOwoKfQoKaW50IHJlbW92ZV9zcGFjZXMoY2hh ciAqYnVmKQp7CiAgICBjaGFyICAgICpyYnVmPU5VTEw7CiAgICBpbnQgICAgIGo9MCxpPTAs azsKCiAgICBpZigocmJ1Zj0oY2hhciAqKW1hbGxvYyhzdHJsZW4oYnVmKSsxKSkgPT0gTlVM TCkKICAgIHsKICAgICAgcHJpbnRmICgiRVJST1IgOiBtYWxsb2MgZmFpbCwgYXQgbGluZSAl ZCBvZiBmaWxlICVzLlxuIiwKICAgICAgICAgICAgICAgX19MSU5FX18sIF9fRklMRV9fKTsK ICAgICAgcmV0dXJuIEtUU19FUlJPUjsKICAgIH0vL2VuZCBvZiBpZgogICAgc3RyY3B5KHJi dWYsYnVmKTsKCiAgICBtZW1zZXQoYnVmLCdcMCcsc3RybGVuKGJ1ZikpOwoKICAgIHdoaWxl KHJidWZbaV0gPT0gJyAnKQogICAgICAgICBpKys7CgogICAgZm9yKDtpPHN0cmxlbihyYnVm KTtpKyspCiAgICAgICBidWZbaisrXT1yYnVmW2ldOwogICAgYnVmW2pdPSdcMCc7CgogICAg d2hpbGUoTlVMTCAhPSBzdHJjaHIoYnVmLCcgJykpCiAgICB7CiAgICAgICAgIGlmKGJ1Zltz dHJsZW4oYnVmKS0xXSAhPSAnICcpCiAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGJ1Zltz dHJsZW4oYnVmKS0xXT0nXDAnOwogICAgfS8vZW5kIG9mIHdoaWxlCgogICAgaWYocmJ1ZikK ICAgICAgZnJlZShyYnVmKTsKCiAgICBpZigocmJ1Zj0oY2hhciAqKW1hbGxvYyhzdHJsZW4o YnVmKSsxKSkgPT0gTlVMTCkKICAgIHsKICAgICAgcHJpbnRmICgiRVJST1IgOiBtYWxsb2Mg ZmFpbCwgYXQgbGluZSAlZCBvZiBmaWxlICVzLlxuIiwKICAgICAgICAgICAgICAgX19MSU5F X18sIF9fRklMRV9fKTsKICAgICAgcmV0dXJuIEtUU19FUlJPUjsKICAgIH0vL2VuZCBvZiBp ZgogICAgc3RyY3B5KHJidWYsYnVmKTsKCiAgICBmb3IoaT0wO3JidWZbaV0hPSdcMCc7aSsr KQogICAgewogICAgICAgaWYoKHJidWZbaV0gPT0gJyAnICkgJiYgKHJidWZbaSsxXSA9PSAn ICcpKQogICAgICAgewogICAgICAgICBrPWktMTsKICAgICAgICAgZm9yKGo9aSsxO3JidWZb al0hPSdcMCc7aisrLGkrKykKICAgICAgICAgICAgcmJ1ZltpXT1yYnVmW2pdOwogICAgICAg ICByYnVmW2ldPSdcMCc7CiAgICAgICAgIGk9azsKICAgICAgIH0vL2VuZCBvZiBpZgogICAg fS8vZW5kIG9mIGZvcgogICAgc3RyY3B5KGJ1ZixyYnVmKTsKCiAgICBpZihyYnVmKQogICAg ICBmcmVlKHJidWYpOwoKICAgIHJldHVybiAwOwp9CgppbnQgbWFrZWZpcnN0Y2FwKGNoYXIg KmJ1ZikKewogICAgY2hhciAgICAqcmJ1Zj1OVUxMOwogICAgaW50ICAgICBpOwoKICAgIGlm KChzdHJsZW4oYnVmKSkgPT0gMikKICAgICAgcmV0dXJuIDA7CgogICAgaWYoKHJidWY9KGNo YXIgKiltYWxsb2Moc3RybGVuKGJ1ZikrMSkpID09IE5VTEwpCiAgICB7CiAgICAgIHByaW50 ZiAoIkVSUk9SIDogbWFsbG9jIGZhaWwsIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAg ICAgICAgICAgICAgIF9fTElORV9fLCBfX0ZJTEVfXyk7CiAgICAgIHJldHVybiBLVFNfRVJS T1I7CiAgICB9Ly9lbmQgb2YgaWYKICAgIHN0cmNweShyYnVmLGJ1Zik7CgogICAgaWYoICEo KHJidWZbMF0gPj0gJ0EnKSAmJiAocmJ1ZlswXSA8PSAnWicpKSApCiAgICAgIHJidWZbMF09 cmJ1ZlswXSAtICgnYScgLSAnQScpOwoKICAgIGZvcihpPTE7cmJ1ZltpXSE9J1wwJztpKysp CiAgICB7CiAgICAgICBpZiggISgocmJ1ZltpXSA+PSAnYScpICYmIChyYnVmW2ldIDw9ICd6 JykpICkKICAgICAgICAgcmJ1ZltpXT1yYnVmW2ldICsgKCdhJyAtICdBJyk7CiAgICB9Ly9l bmQgb2YgZm9yCiAgICBzdHJjcHkoYnVmLHJidWYpOwoKICAgIGlmKHJidWYpCiAgICAgIGZy ZWUocmJ1Zik7CgogICAgcmV0dXJuIDA7Cn0KCmludCB0aW1lZm9ybWF0KGNoYXIgKmJ1ZikK ewogICAgY2hhciAqcmJ1Zj1OVUxMOwogICAgaW50ICBpOwoKICAgIGlmKChyYnVmPShjaGFy ICopbWFsbG9jKHN0cmxlbihidWYpKzEpKSA9PSBOVUxMKQogICAgewogICAgICBwcmludGYg KCJFUlJPUiA6IG1hbGxvYyBmYWlsLCBhdCBsaW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAg ICAgICAgICAgICBfX0xJTkVfXywgX19GSUxFX18pOwogICAgICByZXR1cm4gS1RTX0VSUk9S OwogICAgfS8vZW5kIG9mIGlmCiAgICBzdHJjcHkocmJ1ZixidWYpOwoKICAgIGZvcihpPTA7 cmJ1ZltpXSE9J1wwJztpKyspCiAgICB7CiAgICAgICBpZihyYnVmW2ldID09ICcuJykKICAg ICAgICAgcmJ1ZltpXT0nOic7CiAgICB9Ly9lbmQgb2YgZm9yCgogICAgaWYoTlVMTCAhPSAo c3RyY2hyKHJidWYsJ3AnKSkpCiAgICB7CiAgICAgIGlmKChyYnVmPShjaGFyICopcmVhbGxv YyhyYnVmLHN0cmxlbihyYnVmKSsyKSkgPT0gTlVMTCkKICAgICAgewogICAgICAgIHByaW50 ZiAoIkVSUk9SIDogbWFsbG9jIGZhaWwsIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAg ICAgICAgICAgICAgICAgX19MSU5FX18sIF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gS1RT X0VSUk9SOwogICAgICB9Ly9lbmQgb2YgaWYKICAgICAgZm9yKGk9MDtyYnVmW2ldIT0nXDAn O2krKykKICAgICAgewogICAgICAgICBpZihyYnVmW2ldID09ICdwJykKICAgICAgICAgewog ICAgICAgICAgIHJidWZbaSsxXT0nbSc7CiAgICAgICAgICAgcmJ1ZltpKzJdPSdcMCc7CiAg ICAgICAgIH0vL2VuZCBvZiBpZihyYnVmW2ldID09ICdwJykKICAgICAgfS8vZW5kIG9mIGZv cgogICAgfS8vZW5kIG9mIGlmKE5VTEwgIT0gKHN0cmNocihyYnVmLCdwJykpKQogICAgc3Ry Y3B5KGJ1ZixyYnVmKTsKCiAgICBpZihyYnVmKQogICAgICBmcmVlKHJidWYpOwoKICAgIHJl dHVybiAwOwp9CgppbnQgcmVtb3ZlX3NpbmdsZV9xdW90ZXMoY2hhciAqYnVmKQp7CiAgICBj aGFyICAgICpyYnVmPU5VTEw7CiAgICBpbnQgICAgIGo9MCxpPTAsazsKCiAgICBwcmludGYo IiVkXG4iLF9fTElORV9fKTsKICAgIGlmKChyYnVmPShjaGFyICopbWFsbG9jKHN0cmxlbihi dWYpKzEpKSA9PSBOVUxMKQogICAgewogICAgICBwcmludGYgKCJFUlJPUiA6IG1hbGxvYyBm YWlsLCBhdCBsaW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICBfX0xJTkVf XywgX19GSUxFX18pOwogICAgICByZXR1cm4gS1RTX0VSUk9SOwogICAgfS8vZW5kIG9mIGlm CiAgICBwcmludGYoIiVkXG4iLF9fTElORV9fKTsKICAgIHN0cmNweShyYnVmLGJ1Zik7CiAg ICBwcmludGYoIiVkXG4iLF9fTElORV9fKTsKCiAgICBtZW1zZXQoYnVmLCdcMCcsc3RybGVu KGJ1ZikpOwogICAgcHJpbnRmKCIlZFxuIixfX0xJTkVfXyk7CgogICAgZm9yKGk9MDtyYnVm W2ldIT0nXDAnO2krKykKICAgIHsKICAgICAgIGlmKHJidWZbaV0gPT0gMzkpCiAgICAgICB7 CiAgICAgICAgIGs9aS0xOwogICAgICAgICBmb3Ioaj1pKzE7cmJ1ZltqXSE9J1wwJztqKyss aSsrKQogICAgICAgICAgICByYnVmW2ldPXJidWZbal07CiAgICAgICAgIHJidWZbaV09J1ww JzsKICAgICAgICAgaT1rOwogICAgICAgfS8vZW5kIG9mIGlmKHJidWZbaV0gPT0gMzkpCiAg ICB9Ly9lbmQgb2YgZm9yCiAgICBwcmludGYoIiVkXG4iLF9fTElORV9fKTsKICAgIHN0cmNw eShidWYscmJ1Zik7CiAgICBwcmludGYoIiVkXG4iLF9fTElORV9fKTsKCiAgICBpZihyYnVm KQogICAgICBmcmVlKHJidWYpOwogICAgcHJpbnRmKCIlZFxuIixfX0xJTkVfXyk7CgogICAg cmV0dXJuIDA7Cn0KCnZvaWQgZnJlZV9tZW1vcnkodm9pZCkKewogICAgIGludCAgICBpOwoK ICAgICBmb3IoaT0xO2k8Tk9fT0ZfRklFTERTO2krKykKICAgICB7CiAgICAgICAgaWYoZGJG aWVsZFN0cltpXSkKICAgICAgICAgIGZyZWUoZGJGaWVsZFN0cltpXSk7CiAgICAgICAgaWYo ZGJWYWxTdHJbaV0pCiAgICAgICAgICBmcmVlKGRiVmFsU3RyW2ldKTsKICAgICB9Ly9lbmQg b2YgZm9yCn0KCmludCBmb3JtYXRfbmFtZShjaGFyICpidWYpCnsKICAgIGNoYXIgICAgKnJi dWY9TlVMTDsKICAgIGludCAgICAgaSxqPTA7CgogICAgaWYoKHJidWY9KGNoYXIgKiltYWxs b2Moc3RybGVuKGJ1ZikrMSkpID09IE5VTEwpCiAgICB7CiAgICAgIHByaW50ZiAoIkVSUk9S IDogbWFsbG9jIGZhaWwsIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAgICAgICAgICAg ICAgIF9fTElORV9fLCBfX0ZJTEVfXyk7CiAgICAgIHJldHVybiBLVFNfRVJST1I7CiAgICB9 Ly9lbmQgb2YgaWYKICAgIHN0cmNweShyYnVmLGJ1Zik7CgogICAgZm9yKGk9MDtyYnVmW2ld IT0nXDAnO2krKykKICAgIHsKICAgICAgIGlmKCgocmJ1ZltpXSA+PSAnQScpICYmIChyYnVm W2ldIDw9ICdaJykpIHx8ICgocmJ1ZltpXSA+PSAnYScpICYmIChyYnVmW2ldIDw9ICd6Jykp IHx8IChyYnVmW2ldID09ICcgJykpCiAgICAgICAgIGJ1ZltqKytdPXJidWZbaV07CiAgICB9 Ly9lbmQgb2YgZm9yCiAgICBidWZbal09J1wwJzsKCiAgICBpZihyYnVmKQogICAgICBmcmVl KHJidWYpOwoKICAgIHJldHVybiAwOwp9CgppbnQgbWFpbihpbnQgYXJnYyxjaGFyICphcmd2 W10pCnsKICAgIEZJTEUgICAgKmZwPU5VTEw7CiAgICBjaGFyICAgIGJ1ZltSRUFEX05PX0NI QVJTKzFdOwogICAgaW50ICAgICBsZW4scG9zOwogICAgY2hhciAgICBrZXlbS0VZX1ZBUl9M RU5dLHZhbHVlW1ZBTFVFX1ZBUl9MRU4rMV0sdHZhbHVlW1ZBTFVFX1ZBUl9MRU4rMl07CiAg ICBjaGFyICAgIHRlbXBbVkFMVUVfVkFSX0xFTisxXTsKICAgIGludCAgICAgaXN2YWx1ZT0w LGlzcmVjPTA7CiAgICBpbnQgICAgIGk7CgoKICAgIGlmKGFyZ2MgIT0gMykKICAgIHsKICAg ICAgcHJpbnRmKCJJbnZhbGlkIG5vLiBvZiBhcmd1bWVudHNcbiIpOwogICAgICBleGl0KDEp OwogICAgfS8vZW5kIG9mIGlmCgogICAgaWYoIChmcD1mb3Blbihhcmd2WzFdLCJyYiIpKSA9 PSBOVUxMKQogICAgewogICAgICBwcmludGYoIlVuYWJsZSB0byBvcGVuIGZpbGUgJXNcbiIs YXJndlsxXSk7CiAgICAgIGV4aXQoMSk7CiAgICB9Ly9lbmQgb2YgaWYKCiAgICBpZiggKGRi RmllbGRTdHJbMF09KGNoYXIgKiltYWxsb2MobGVuKzEpKSA9PSBOVUxMKQogICAgewogICAg ICBwcmludGYgKCJFUlJPUiA6IG1hbGxvYyBmYWlsLCBhdCBsaW5lICVkIG9mIGZpbGUgJXMu XG4iLAogICAgICAgICAgICAgICBfX0xJTkVfXywgX19GSUxFX18pOwogICAgICByZXR1cm4g S1RTX0VSUk9SOwogICAgfS8vZW5kIG9mIGlmCiAgICBzdHJjcHkoZGJGaWVsZFN0clswXSwi ZGVwdF9pZCIpOwogICAgbGVuPXN0cmxlbihhcmd2WzJdKTsKICAgIGlmKCAoZGJWYWxTdHJb MF09KGNoYXIgKiltYWxsb2MobGVuKzEpKSA9PSBOVUxMKQogICAgewogICAgICBwcmludGYg KCJFUlJPUiA6IG1hbGxvYyBmYWlsLCBhdCBsaW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAg ICAgICAgICAgICBfX0xJTkVfXywgX19GSUxFX18pOwogICAgICByZXR1cm4gS1RTX0VSUk9S OwogICAgfS8vZW5kIG9mIGlmCiAgICBzdHJjcHkoZGJWYWxTdHJbMF0sYXJndlsyXSk7Cgog ICAgd2hpbGUoIWZlb2YoZnApKQogICAgewogICAgICAgICBmZ2V0cyhidWYsUkVBRF9OT19D SEFSUyxmcCk7CiAgICAgICAgIGJ1ZltzdHJsZW4oYnVmKS0xXT0nXDAnOwoKICAgICAgICAg aWYoZW9yKSAgLS0tLS0tLS0tLS0tPiBUaGlzIGlzIGVuZCBvZiByZWNvcmQgY29uZGl0aW9u KG1pbmUgb25lIG5vdCBnaXZlbiBoZXJlKS4KICAgICAgICAgewogICAgICAgICAgIHNwcmlu dGYocVN0ciwiSU5TRVJUIElOVE8gZGVwdF9zY2hlZHVsZSglcywlcywlcywlcykgVkFMVUVT KCVkLCVkLCVzLCVzKSIsZGJGaWVsZFN0clswXSxkYkZpZWxkU3RyWzFdLGRiRmllbGRTdHJb Ml0sZGJGaWVsZFN0clszXSwoaW50KShhdG9sKGRiVmFsU3RyWzBdKSksKGludCkoYXRvbChk YlZhbFN0clsxXSkpLGRiVmFsU3RyWzJdLGRiVmFsU3RyWzNdKTsKICAgICAgICAgICBwcmlu dGYoInFTdHIgPSVzXG4iLHFTdHIpOwogICAgICAgICAgIGZpcmVzcWwoKTsKICAgICAgICAg ICBtZW1zZXQocVN0ciwnXDAnLHNpemVvZihxU3RyKSk7CiAgICAgICAgICAgcHJpbnRmKCIl ZFxuIixfX0xJTkVfXyk7CiAgICAgICAgICAgZnJlZV9tZW1vcnkoKTstLS0tLS0tLS0tLT4g VEhJUyBJUyBUSEUgUE9JTlQgV0hFUkUgQ09SRSBEVU1QIEVSUk9SIENPTUVTLgogICAgICAg ICAgIHByaW50ZigiJWRcbiIsX19MSU5FX18pOwogICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICB9Ly9lbmQgb2YgaWYKCiAgICAgICAgIGlmKE5VTEwgIT0gKHN0cnN0cihidWYsVkFM VUVfREVMSU0pKSkKICAgICAgICAgewogICAgICAgICAgIHN0cmNweSh0ZW1wLChzdHJzdHIo YnVmLFZBTFVFX0RFTElNKStMRU5fVkFMVUVfREVMSU0pKTsKICAgICAgICAgICBpZigwICE9 IHN0cmxlbih0ZW1wKSkKICAgICAgICAgICB7CiAgICAgICAgICAgICBpc3ZhbHVlPTE7CiAg ICAgICAgICAgICBnZXRfa2V5X3ZhbChrZXksdHZhbHVlLGJ1ZixWQUxVRV9ERUxJTSk7CiAg ICAgICAgICAgICBzdHJjcHkodmFsdWUsKHN0cmNocih0dmFsdWUsJyAnKSsxKSk7CgogICAg ICAgICAgICAgaWYoKHJlbW92ZV9zcGFjZXMoa2V5KSkgIT0gMCkKICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgcHJpbnRmICgiRVJST1IgaW4gcmVtb3ZlX3NwYWNlcygpLCBhdCBs aW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVf XywgX19GSUxFX18pOwogICAgICAgICAgICAgICByZXR1cm4gS1RTX0VSUk9SOwogICAgICAg ICAgICAgfS8vZW5kIG9mIGlmKChyZW1vdmVfc3BhY2VzKGtleSkpICE9IDApCgogICAgICAg ICAgICAgaWYoKHJlbW92ZV9zcGFjZXModmFsdWUpKSAhPSAwKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICBwcmludGYgKCJFUlJPUiBpbiByZW1vdmVfc3BhY2VzKCksIGF0IGxp bmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9f LCBfX0ZJTEVfXyk7CiAgICAgICAgICAgICAgIHJldHVybiBLVFNfRVJST1I7CiAgICAgICAg ICAgICB9Ly9lbmQgb2YgaWYoKHJlbW92ZV9zcGFjZXMoa2V5KSkgIT0gMCkKCiAgICAgICAg ICAgICBpZihOVUxMICE9IChzdHJzdHIoa2V5LE5BTUVfU1RSX1ZBTFVFKSkpCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIGlmKChmb3JtYXRfbmFtZSh2YWx1ZSkpICE9IDApCiAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBwcmludGYgKCJFUlJPUiBpbiB0aW1l Zm9ybWF0KCksIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgX19MSU5FX18sIF9fRklMRV9fKTsKICAgICAgICAgICAgICAgICByZXR1cm4g S1RTX0VSUk9SOwogICAgICAgICAgICAgICB9Ly9lbmQgb2YgaWYoKGZvcm1hdF9uYW1lKHZh bHVlKSkgIT0gMCkKCiAgICAgICAgICAgICAgIGlmKCFzdHJsZW4odmFsdWUpKQogICAgICAg ICAgICAgICAgIGlzdmFsdWU9MDsKCiAgICAgICAgICAgICAgIGlmKChtYWtlZmlyc3RjYXAo dmFsdWUpKSAhPSAwKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcHJpbnRm ICgiRVJST1IgaW4gbWFrZWZpcnN0Y2FwKCksIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sIF9fRklMRV9fKTsKICAgICAg ICAgICAgICAgICByZXR1cm4gS1RTX0VSUk9SOwogICAgICAgICAgICAgICB9Ly9lbmQgb2Yg aWYoKG1ha2VmaXJzdGNhcCh2YWx1ZSkpICE9IDApCgogICAgICAgICAgICAgICBpZihzdHJs ZW4odmFsdWUpID09IDEpCiAgICAgICAgICAgICAgICAgc3RyY2F0KHZhbHVlLCIuIik7Cgog ICAgICAgICAgICAgICBpZihzdHJsZW4odmFsdWUpID09IDEpCiAgICAgICAgICAgICAgICAg c3RyY2F0KHZhbHVlLCIuIik7CgogICAgICAgICAgICAgfS8vZW5kIG9mIGlmKE5VTEwgIT0g KHN0cnN0cihrZXksTkFNRV9TVFJfVkFMVUUpKSkKICAgICAgICAgICAgIGlmKE5VTEwgIT0g KHN0cnN0cihrZXksVElNRV9TVFJfVkFMVUUpKSkKICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgaWYoKHRpbWVmb3JtYXQodmFsdWUpKSAhPSAwKQogICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgcHJpbnRmICgiRVJST1IgaW4gdGltZWZvcm1hdCgpLCBhdCBsaW5l ICVkIG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fTElORV9f LCBfX0ZJTEVfXyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEtUU19FUlJPUjsKICAgICAg ICAgICAgICAgfS8vZW5kIG9mIGlmKCh0aW1lZm9ybWF0KHZhbHVlKSkgIT0gMCkKCiAgICAg ICAgICAgICB9Ly9lbmQgb2YgaWYoTlVMTCAhPSAoc3Ryc3RyKGtleSxUSU1FX1NUUl9WQUxV RSkpKQoKICAgICAgICAgICB9Ly9lbmQgb2YgaWYoMCAhPSBzdHJsZW4odGVtcCkpCiAgICAg ICAgICAgZWxzZQogICAgICAgICAgIHsKICAgICAgICAgICAgIGlzdmFsdWU9MDsKICAgICAg ICAgICAgIGJ1ZltzdHJsZW4oYnVmKS1MRU5fVkFMVUVfREVMSU1dPSdcMCc7CiAgICAgICAg ICAgICBzdHJjcHkoa2V5LGJ1Zik7CiAgICAgICAgICAgICBpZigocmVtb3ZlX3NwYWNlcyhr ZXkpKSAhPSAwKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBwcmludGYgKCJFUlJP UiBpbiByZW1vdmVfc3BhY2VzKCksIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAgICAg ICAgICAgICAgICAgICAgICAgIF9fTElORV9fLCBfX0ZJTEVfXyk7CiAgICAgICAgICAgICAg IHJldHVybiBLVFNfRVJST1I7CiAgICAgICAgICAgICB9Ly9lbmQgb2YgaWYoKHJlbW92ZV9z cGFjZXMoa2V5KSkgIT0gMCkKCiAgICAgICAgICAgfS8vZW5kIG9mIGVsc2UKCiAgICAgICAg IH0vL2VuZCBvZiBpZihOVUxMICE9IChzdHJzdHIoYnVmLFZBTFVFX0RFTElNKSkpCiAgICAg ICAgIGVsc2UKICAgICAgICAgICBpc3ZhbHVlPTA7CgogICAgICAgICBpZihpc3ZhbHVlKQog ICAgICAgICB7CiAgICAgICAgICAgaXNyZWM9MTsKICAgICAgICAgICBwb3M9Z2V0X2tleV9w b3Moa2V5KTsKICAgICAgICAgICBpZihwb3MgPT0gLTEpCiAgICAgICAgICAgICBjb250aW51 ZTsKCiAgICAgICAgICAgbGVuPXN0cmxlbihrZXkpOwogICAgICAgICAgIGlmKCAoZGJGaWVs ZFN0cltwb3NdPShjaGFyICopbWFsbG9jKGxlbisxKSkgPT0gTlVMTCkKICAgICAgICAgICB7 CiAgICAgICAgICAgICBwcmludGYgKCJFUlJPUiA6IG1hbGxvYyBmYWlsLCBhdCBsaW5lICVk IG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sIF9fRklM RV9fKTsKICAgICAgICAgICAgIHJldHVybiBLVFNfRVJST1I7CiAgICAgICAgICAgfS8vZW5k IG9mIGlmCiAgICAgICAgICAgc3RyY3B5KGRiRmllbGRTdHJbcG9zXSxrZXkpOwoKICAgICAg ICAgICBtZW1zZXQoa2V5LCdcMCcsc2l6ZW9mKGtleSkpOwoKICAgICAgICAgICBpZigocmVt b3ZlX3NpbmdsZV9xdW90ZXModmFsdWUpKSAhPSAwKQogICAgICAgICAgIHsKICAgICAgICAg ICAgIHByaW50ZiAoIkVSUk9SIGluIHJlbW92ZV9zaW5nbGVfcXVvdGVzKCksIGF0IGxpbmUg JWQgb2YgZmlsZSAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICAgICBfX0xJTkVfXywgX19G SUxFX18pOwogICAgICAgICAgICAgcmV0dXJuIEtUU19FUlJPUjsKICAgICAgICAgICB9Ly9l bmQgb2YgaWYoKHJlbW92ZV9zaW5nbGVfcXVvdGVzKHZhbHVlKSkgIT0gMCkKCiAgICAgICAg ICAgc3ByaW50Zih0dmFsdWUsIiclcyciLHZhbHVlKTsKICAgICAgICAgICBzdHJjcHkodmFs dWUsdHZhbHVlKTsKCiAgICAgICAgICAgbGVuPXN0cmxlbih2YWx1ZSk7CiAgICAgICAgICAg aWYoIChkYlZhbFN0cltwb3NdPShjaGFyICopbWFsbG9jKGxlbisxKSkgPT0gTlVMTCkKICAg ICAgICAgICB7CiAgICAgICAgICAgICBwcmludGYgKCJFUlJPUiA6IG1hbGxvYyBmYWlsLCBh dCBsaW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgICAgX19MSU5F X18sIF9fRklMRV9fKTsKICAgICAgICAgICAgIHJldHVybiBLVFNfRVJST1I7CiAgICAgICAg ICAgfS8vZW5kIG9mIGlmCiAgICAgICAgICAgc3RyY3B5KGRiVmFsU3RyW3Bvc10sdmFsdWUp OwogICAgICAgICAgICBwb3M9LTE7CiAgICAgICAgIH0vL2VuZCBvZiBpZihpc3ZhbHVlKQog ICAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICBpc3JlYz0xOwogICAgICAgICAg IHBvcz1nZXRfa2V5X3BvcyhrZXkpOwogICAgICAgICAgIGlmKHBvcyA9PSAtMSkKICAgICAg ICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICBsZW49c3RybGVuKGtleSk7CiAgICAgICAg ICAgaWYoIChkYkZpZWxkU3RyW3Bvc109KGNoYXIgKiltYWxsb2MobGVuKzEpKSA9PSBOVUxM KQogICAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ZiAoIkVSUk9SIDogbWFsbG9jIGZh aWwsIGF0IGxpbmUgJWQgb2YgZmlsZSAlcy5cbiIsCiAgICAgICAgICAgICAgICAgICAgICBf X0xJTkVfXywgX19GSUxFX18pOwogICAgICAgICAgICAgcmV0dXJuIEtUU19FUlJPUjsKICAg ICAgICAgICB9Ly9lbmQgb2YgaWYKICAgICAgICAgICBzdHJjcHkoZGJGaWVsZFN0cltwb3Nd LGtleSk7CgogICAgICAgICAgIG1lbXNldChrZXksJ1wwJyxzaXplb2Yoa2V5KSk7CgogICAg ICAgICAgIGlmKCAoZGJWYWxTdHJbcG9zXT0oY2hhciAqKW1hbGxvYyg3KSkgPT0gTlVMTCkK ICAgICAgICAgICB7CiAgICAgICAgICAgICBwcmludGYgKCJFUlJPUiA6IG1hbGxvYyBmYWls LCBhdCBsaW5lICVkIG9mIGZpbGUgJXMuXG4iLAogICAgICAgICAgICAgICAgICAgICAgX19M SU5FX18sIF9fRklMRV9fKTsKICAgICAgICAgICAgIHJldHVybiBLVFNfRVJST1I7CiAgICAg ICAgICAgfS8vZW5kIG9mIGlmCgogICAgICAgICAgIHN0cmNweShkYlZhbFN0cltwb3NdLCIo bnVsbCkiKTsKCiAgICAgICAgICAgcG9zPS0xOwogICAgICAgICB9Ly9lbmQgb2YgZWxzZQoK ICAgICAgICAgbWVtc2V0KGJ1ZiwnXDAnLHNpemVvZihidWYpKTsKICAgIH0vL2VuZCBvZiBm ZW9mKGZwKSB3aGlsZSBsb29wCiAgICBpZihpc3JlYykKICAgIHsKICAgICAgcHJpbnRmKCJp c3JlYyA9ICVkXG4iLGlzcmVjKTsKICAgICAgc3ByaW50ZihxU3RyLCJJTlNFUlQgSU5UTyBk ZXB0X3NjaGVkdWxlKCVzLCVzLCVzLCVzKSBWQUxVRVMoJWQsJWQsJXMsJXMpIixkYkZpZWxk U3RyWzBdLGRiRmllbGRTdHJbMV0sZGJGaWVsZFN0clsyXSxkYkZpZWxkU3RyWzNdLChpbnQp KGF0b2woZGJWYWxTdHJbMF0pKSwoaW50KShhdG9sKGRiVmFsU3RyWzFdKSksZGJWYWxTdHJb Ml0sZGJWYWxTdHJbM10pOwogICAgICBwcmludGYoInFTdHIgPSVzXG4iLHFTdHIpOwogICAg ICBmaXJlc3FsKCk7CiAgICAgIHByaW50ZigiJWRcbiIsX19MSU5FX18pOwogICAgICBmcmVl X21lbW9yeSgpOwogICAgICBwcmludGYoIiVkXG4iLF9fTElORV9fKTsKICAgIH0vL2VuZCBv ZiBpZgoKICAgIGZvcihpPTE7aTxOT19PRl9GSUVMRFM7aSsrKQogICAgIHsKICAgICAgICBp ZihkYkZpZWxkU3RyW2ldKQogICAgICAgICAgZnJlZShkYkZpZWxkU3RyW2ldKTsKICAgICAg ICBpZihkYlZhbFN0cltpXSkKICAgICAgICAgIGZyZWUoZGJWYWxTdHJbaV0pOwogICAgIH0v L2VuZCBvZiBmb3IKCiAgICBpZihmcCkKICAgICAgZmNsb3NlKGZwKTsKCiAgICByZXR1cm4g MDsKfQo= --Next_1011249569---0-203.199.83.32-16637-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/