From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22506 invoked by alias); 31 Oct 2002 10:16:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 22426 invoked by uid 71); 31 Oct 2002 10:16:03 -0000 Resent-Date: 31 Oct 2002 10:16:03 -0000 Resent-Message-ID: <20021031101603.22424.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, bridean@ureach.com Received: (qmail 8163 invoked by uid 61); 31 Oct 2002 10:10:27 -0000 Message-Id: <20021031101027.8161.qmail@sources.redhat.com> Date: Thu, 31 Oct 2002 02:16:00 -0000 From: bridean@ureach.com Reply-To: bridean@ureach.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c/8411: Segmentation fault error in malloc X-SW-Source: 2002-10/txt/msg01317.txt.bz2 List-Id: >Number: 8411 >Category: c >Synopsis: Segmentation fault error in malloc >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Oct 31 02:16:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Brian M. Dean >Release: unknown-1.0 >Organization: >Environment: Red Hat 8.0 Gnu compiler 3.2 >Description: When the following program is compiled with -O3 optimization either int CheckRepeats[MaxRepSize * sizeof(int)] or CheckRepeats = (int *) malloc(MaxRepSize * sizeof(int)) Will return a segmentation fault. If the program is compiled without optimization, it will execute normally. >How-To-Repeat: Do the following compile gcc -O3 -o GetComplete GetComplete3.c Then run it as follows ./GetComplete 3 -1000 1000 >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="GetComplete3.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="GetComplete3.c" LyoKICBQcm9ncmFtIHRvIGdldCBjb21wbGV0ZSBiYXNlcyBnaXZlbiB0aGUgZm9sbG93aW5nIG9w dGlvbnMgZnJvbSB0aGUKICBjb21tYW5kIGxpbmUuCgogIEdldENvbXBsZXRlIHJhZGl4IGxvdyBo aWdoIGZpbGUKCiAgV2hlcmUgbG93IGlzIHRoZSBsb3dlc3QgZGlnaXQgdmFsdWUsIGhpZ2ggaXMg dGhlIGhpZ2hlc3QgZGlnaXQgdmFsdWUKICBhbmQgZmlsZSBpcyBhbiBvcHRpb25hbCBmaWxlIG91 dHB1dC4gIFdpdGhvdXQgdGhlIGZpbGUgb3V0cHV0IHRoZQogIHByb2dyYW0gd2lsbCBzaW1wbHkg ZGlzcGxheSBob3cgbWFueSBjb21wbGV0ZSBiYXNlcyBpdCBmb3VuZC4KKi8KCiNpbmNsdWRlIDxz dGRpby5oPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxl cnJuby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzeXMvdGltZS5oPgoKCmludCBH ZXRJbnQoKQp7CiAgY2hhciBHZXRTdHJbODBdOwogIGludCBHZXROdW09MCwgZXJyPTA7CgogIGZn ZXRzKEdldFN0ciwgODAsIHN0ZGluKTsKICB3aGlsZSAoZXJyID09IDApCiAgICB7CiAgICAgIGVy ciA9IHNzY2FuZihHZXRTdHIsICIlbGQiLCAmR2V0TnVtKTsKICAgICAgaWYgKGVyciA9PSAwKQoJ ewoJICBwcmludGYoIlxuVHJ5IGFnYWluLiAiKTsKCSAgZmdldHMoR2V0U3RyLCA4MCwgc3RkaW4p OwoJfQogICAgfQogIHJldHVybiBHZXROdW07Cn0KCgp2b2lkIHNvcnRpbnRzKGludCAqaW50YXJy LCBjb25zdCBpbnQgYmFzZSkKLyogCiAgIFNpbmNlIHRoZXJlIGFyZSBhdCBtb3N0IDE2IG9mIHRo ZXNlIHRvIHNvcnQgdGhlbgogICBhbnkgc29ydGluZyBhbGdvcml0aG0gc2hvdWxkIGJlIHN1ZmZp Y2llbnQuCiAgIE1pZ2h0IGFzIHdlbGwgdXNlIGJ1YmJsZSBzb3J0LgoqLwp7CiAgaW50IHNvcnRl ZCA9IDAsIHN3YXBvY2N1ciA9IDA7CiAgaW50IHN3YXBpbnQsIGk7CgogIHdoaWxlICghc29ydGVk KQogICAgewogICAgICBzd2Fwb2NjdXIgPSAwOwogICAgICBmb3IgKGk9MTsgaTxiYXNlOyBpKysp Cgl7CgkgIGlmIChpbnRhcnJbaV0gPCBpbnRhcnJbaS0xXSkKCSAgICB7CgkgICAgICBzd2FwaW50 ID0gaW50YXJyW2ldOwoJICAgICAgaW50YXJyW2ldID0gaW50YXJyW2ktMV07CgkgICAgICBpbnRh cnJbaS0xXSA9IHN3YXBpbnQ7CgkgICAgICBzd2Fwb2NjdXIgPSAxOwoJICAgIH0KCX0KICAgICAg aWYgKCFzd2Fwb2NjdXIpIHNvcnRlZCA9IDE7CiAgICB9Cn0KCmludCBJc1JlcHJlc2VudGFibGUo Y29uc3QgaW50IHJlcGludCwgY29uc3QgaW50ICpEaWdpdHMsIGNvbnN0IGludCBiYXNlKQovKiBJ cyByZXBpbnQgcmVwcmVzZW50YWJsZSBpbiB0aGlzIGJhc2U/ICovCnsKICBpbnQgY3VybnVtID0g cmVwaW50OwogIGludCBNYXhSZXBTaXplPTAsIEN1cnJSZXBTaXplPTA7CiAgaW50IG1vZGludCwg Y3VycmxvYz0wLCBpOwogIC8vIGludCAqQ2hlY2tSZXBlYXQ7CgogIC8qIAogICAgIE1heFJlcFNp emUgY2FuIG5vdCBwb3NzaWJseSBiZSBhbnkgd29yc2UgdGhhbiB0aGUgc3VtIG9mIGFsbCBvZgog ICAgIHRoZSBhYnNvbHV0ZSB2YWx1ZXMgb2YgYWxsIG9mIHRoZSBkaWdpdHMuICBVbnRpbCBJIGZp bmQgYSBiZXR0ZXIKICAgICBNYXhSZXBTaXplIEkgd2lsbCB1c2UgdGhpcyBvbmUuCiAgKi8KICBm b3IgKGk9MDsgaTxiYXNlOyBpKyspCiAgICBNYXhSZXBTaXplICs9IGFicyhEaWdpdHNbaV0pOwog IGludCBDaGVja1JlcGVhdFsoTWF4UmVwU2l6ZSArIDEpICogc2l6ZW9mKGludCldOwogIC8vIENo ZWNrUmVwZWF0ID0gKGludCAqKSBtYWxsb2MoTWF4UmVwU2l6ZSAqIHNpemVvZihpbnQpKTsKICBD aGVja1JlcGVhdFswXSA9IGN1cm51bTsKICB3aGlsZSAoY3VybnVtICE9IDApCiAgICB7CiAgICAg IGludCBkaXZpbnQ7CgogICAgICBtb2RpbnQgPSBjdXJudW0gJSBiYXNlOwogICAgICBpZiAobW9k aW50IDwgMCkgbW9kaW50ICs9IGJhc2U7CiAgICAgIGRpdmludCA9IChjdXJudW0gLSBEaWdpdHNb bW9kaW50XSkgLyBiYXNlOwogICAgICBDdXJyUmVwU2l6ZSsrOwogICAgICAvKiAKCSBjdXJyZXAg c2hvdWxkIG5vdyBiZSA9PSAoZGl2aW50ICogYmFzZSkgKyBEaWdpdHNbbW9kaW50XSAKCSBzbyB0 aGUgYXBwcm9wcmlhdGUgZGlnaXQgPSBEaWdpdHNbbW9kaW50XQogICAgICAqLwogICAgICBpZiAo Q3VyclJlcFNpemUgPiBNYXhSZXBTaXplKQoJewoJICAvLyBmcmVlKENoZWNrUmVwZWF0KTsKCSAg cmV0dXJuIDA7Cgl9CiAgICAgIGZvciAoaT0wOyBpPEN1cnJSZXBTaXplOyBpKyspCglpZiAoQ2hl Y2tSZXBlYXRbaV0gPT0gZGl2aW50KSAKCSAgewoJICAgIC8vIGZyZWUoQ2hlY2tSZXBlYXQpOwoJ ICAgIHJldHVybiAwOwoJICB9CiAgICAgIENoZWNrUmVwZWF0W0N1cnJSZXBTaXplXSA9IGRpdmlu dDsKICAgICAgY3VybnVtID0gZGl2aW50OwogICAgfQogIC8vIGZyZWUoQ2hlY2tSZXBlYXQpOwog IHJldHVybiAxOwp9CgoKaW50IFRlc3RDb21wbGV0ZShjb25zdCBpbnQgKkRpZ2l0cywgY29uc3Qg aW50IGJhc2UpCnsKICBpbnQgaSwgbWF4dmFsPTA7CgogIGZvciAoaT0wOyBpPGJhc2U7IGkrKykK ICAgIHsKICAgICAgaW50IHRtcCA9IGFicyhEaWdpdHNbaV0pOwogICAgICBpZiAodG1wID4gbWF4 dmFsKQoJbWF4dmFsID0gdG1wOwogICAgfQogIG1heHZhbCArPSAyOwogIG1heHZhbCAvPSAyOwog IGZvciAoaSA9IChtYXh2YWwgKiAtMSk7IGkgPD0gbWF4dmFsOyBpKyspCiAgICBpZiAoIUlzUmVw cmVzZW50YWJsZSggaSwgRGlnaXRzLCBiYXNlKSkKCXJldHVybiAwOwogIHJldHVybiAxOwp9CgoK aW50IEdldE5leHREaWdpdFNldChpbnQgKkRpZ2l0cywgY29uc3QgaW50IGJhc2UsIAoJCSAgICBj b25zdCBpbnQgbG93aW50LCBjb25zdCBpbnQgaGlnaGludCkKLyoKICBHZXQgdGhlIG5leHQgc2V0 IG9mIGRpZ2l0cyBpbiB0aGUgYmFzZS4KICBJZ25vcmUgdGhlIGluY29tcGxldGUgY2FzZSB3aGVy ZSBvbmUgb2YgdGhlIGRpZ2l0cyBpcyBkaXZpc2libGUKICBieSAoYmFzZSAtIDEpIGFuZCBpZ25v cmUgYmFzZXMgd2hlcmUgdGhlIGRpZ2l0cyBhZGQgdXAgdG8gZ3JlYXRlcgogIHRoYW4gemVyby4K Ki8KewogIGludCBpID0gYmFzZSAtIDEsIGo7CiAgd2hpbGUgKCFEaWdpdHNbMF0pIC8vIEFub3Ro ZXIgd2F5IG9mIHNheWluZyBEaWdpdHNbMF0gPSAwCiAgICB7CiAgICAgIGludCBhZGRpZ2l0cywg ajsKICAgICAgaW50IG1heGRpZyA9IDAsIGkgPSBiYXNlIC0gMTsKICAgICAgZm9yIChqPTA7IGo8 YmFzZTsgaisrKQoJaWYgKERpZ2l0c1tqXSA+IG1heGRpZykKCSAgbWF4ZGlnID0gRGlnaXRzW2pd OwogICAgICBpZiAobWF4ZGlnIDwgMCkKCURpZ2l0c1tiYXNlLTFdID0gKDIqYmFzZSkgLSAxOwog ICAgICB3aGlsZSAoKERpZ2l0c1tpXSArIGJhc2UpID4gaGlnaGludCkKCXsKCSAgaW50IG51bWFk ZCA9IChsb3dpbnQgLSBpKS9iYXNlOwoJICBEaWdpdHNbaV0gPSBpICsgKG51bWFkZCAqIGJhc2Up OwoJICBpZiAoKERpZ2l0c1tpXSAlIChiYXNlIC0gMSkpID09IDApCgkgICAgRGlnaXRzW2ldICs9 IGJhc2U7CgkgIGktLTsKCX0KICAgICAgRGlnaXRzW2ldICs9IGJhc2U7CiAgICAgIGlmICgoRGln aXRzW2ldICUgKGJhc2UgLSAxKSkgPT0gMCkKCWlmICgoRGlnaXRzW2ldICsgYmFzZSkgPiBoaWdo aW50KQoJICAvLyBHbyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAhZm91bmQgbG9vcAoJICBjb250 aW51ZTsKCWVsc2UKCSAgRGlnaXRzW2ldICs9IGJhc2U7CiAgICAgIGFkZGlnaXRzID0gMDsKICAg ICAgZm9yIChpPTE7IGk8YmFzZTsgaSsrKQoJYWRkaWdpdHMgKz0gRGlnaXRzW2ldOwogICAgICBp ZiAoYWRkaWdpdHMgPiAwKQoJY29udGludWU7CiAgICAgIGlmIChEaWdpdHNbMF0gPiAwKQoJcmV0 dXJuIDA7CiAgICAgIGVsc2UKCXJldHVybiAxOwogICAgfQogIHJldHVybiAwOwp9ICAKCnZvaWQg UHJpbnRDb21wbGV0ZShjb25zdCBpbnQgKkRpZ2l0cywgY29uc3QgaW50IGJhc2UsIEZJTEUgKk91 dEZpbGUpCnsKICBjaGFyIE91dFN0clsyMDBdOwogIGNoYXIgQWRkU3RyWzEwMF07CiAgaW50IGk7 CgogIHNwcmludGYoT3V0U3RyLCAiQiA9ICVsZFx0eyIsIGJhc2UpOwogIGZvciAoaT0wOyBpPChi YXNlLTEpOyBpKyspCiAgICB7CiAgICAgIHNwcmludGYoQWRkU3RyLCAiJWxkLCAiLCBEaWdpdHNb aV0pOwogICAgICBzdHJjYXQoT3V0U3RyLCBBZGRTdHIpOwogICAgfQogIHNwcmludGYoQWRkU3Ry LCAiJWxkfVxuIiwgRGlnaXRzW2Jhc2UtMV0pOyAgCiAgc3RyY2F0KE91dFN0ciwgQWRkU3RyKTsK ICBmcHV0cyhPdXRTdHIsIE91dEZpbGUpOwp9CiAgCgp2b2lkIEdldENvbXBsZXRlKGNvbnN0IGlu dCBiYXNlLCBjb25zdCBpbnQgbG93aW50LCBjb25zdCBpbnQgaGlnaGludCwgCgkJIEZJTEUgKk91 dEZpbGUpCnsKICBpbnQgRGlnaXRzW2Jhc2VdOwogIGludCBpOwogIGxvbmcgbnVtYmFzZXMgPSAw OwoKICAvKiAKICAgICBHZXQgdGhlIGxvd2VzdCBudW1iZXIgYWxsb3dhYmxlIGluIE1heERpZ2l0 IHdoZXJlIHRoZSBudW1iZXIKICAgICBtb2R1bHVzIGJhc2UgaXMgdGhlIHNhbWUgYXMgdGhlIG9y aWdpbmFsIGRpZ2l0LgogICAgIEZyb20gbm93IG9uLCBEaWdpdHNbMF0gPSAwIHNpbmNlIHplcm8g aXMgYSBuZWNlc3NhcnkgZGlnaXQKICAgICBpbiBhbnkgY29tcGxldGUgYmFzZS4gIFNpbmNlIGNv bnZlcnRpbmcgYW4gaW50IHRvIGRvdWJsZQogICAgIGluIEMgaGFzIHRoZSBlZmZlY3Qgb2YgbWVy ZWx5IHRydW5jYXRpbmcgb2ZmIHRoZSBkZWNpbWFscwogICAgIChpLmUuIDMuMzMzMzMgb3IgMy44 ODg4ODggYmVjb21lcyBqdXN0IDMpIGFsbCB5b3UgaGF2ZSB0bwogICAgIGRvIGlzIGRpdmlkZSBh bmQgdGhlbiBtdWx0aXBseSBieSBiYXNlLiAgRGlnaXRzWzBdIGlzIAogICAgIGFsd2F5cyB6ZXJv IHNpbmNlIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gYmFzZXMgd2hpY2gKICAgICBoYXZlIGEg emVybyBkaWdpdC4KICAqLwogIERpZ2l0c1swXSA9IDA7CiAgZm9yIChpPTE7IGk8YmFzZS0xOyBp KyspCiAgICB7CiAgICAgIGludCBudW1hZGQgPSAobG93aW50IC0gaSkvYmFzZTsKICAgICAgRGln aXRzW2ldID0gaSArIChudW1hZGQgKiBiYXNlKTsKICAgICAgaWYgKChEaWdpdHNbaV0gJSAoYmFz ZSAtIDEpKSA9PSAwKQoJRGlnaXRzW2ldICs9IGJhc2U7CiAgICB9CiAgLyogCiAgICAgTm93IHRl c3QgZWFjaCBwb3NzaWJsZSBzZXQgb2YgZGlnaXRzCiAgKi8KCiAgd2hpbGUoR2V0TmV4dERpZ2l0 U2V0KERpZ2l0cywgYmFzZSwgbG93aW50LCBoaWdoaW50KSkKICAgIHsKICAgICAgaWYgKFRlc3RD b21wbGV0ZShEaWdpdHMsIGJhc2UpKQoJewoJICBudW1iYXNlcysrOwoJICBpZiAoT3V0RmlsZSAh PSBOVUxMKQoJICAgIFByaW50Q29tcGxldGUoRGlnaXRzLCBiYXNlLCBPdXRGaWxlKTsKCX0KICAg IH0KICBwcmludGYoIiVsZCBudW1iZXIgb2YgYmFzZXMgZm91bmRcbiIsIG51bWJhc2VzKTsKfQoK CmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICBGSUxFICpPdXRGaWxlID0gTlVM TDsKICBpbnQgYmFzZSwgbG93aW50LCBoaWdoaW50OwogIGxvbmcgbnVtbWljc2VjcywgbG51bXNl Y3M7CiAgZG91YmxlIG51bXNlY3M7CiAgaW50IGksIGFuczsKICBzdHJ1Y3QgdGltZXZhbCAgc3R0 aW1lLCBlbmR0aW1lOwoKICBpZiAoKGFyZ2MgPCA0KSB8fCAoYXJnYyA+IDUpKQogICAgewogICAg ICBwcmludGYoIlVzYWdlOiBHZXRDb21wbGV0ZSByYWRpeCBsb3cgaGlnaCBmaWxlIFxuIik7CiAg ICAgIHByaW50ZigiV2hlcmUgbG93IGlzIHRoZSBsb3dlc3QgZGlnaXQsIGhpZ2ggaXMgdGhlIGhp Z2hlc3QgXG4iKTsKICAgICAgcHJpbnRmKCJhbmQgZmlsZSBpcyBhbiBvcHRpb25hbCBvdXRwdXQg ZmlsZSBmb3IgdGhlIGNvbXBsZXRlIFxuIik7CiAgICAgIHByaW50ZigiYmFzZXMgZm91bmQuIFxu Iik7CiAgICAgIGV4aXQoMCk7CiAgICB9CiAgaWYgKGFyZ2MgPT0gNSkKICAgIHsKICAgICAgT3V0 RmlsZSA9IGZvcGVuKGFyZ3ZbNF0sICJ3Iik7CiAgICAgIGlmIChPdXRGaWxlID09IE5VTEwpCgl7 CgkgIHByaW50ZigiQ291bGQgbm90IG9wZW4gZmlsZSBmb3Igb3V0cHV0LlxuIik7CgkgIHByaW50 ZigiUmVhc29uOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKCSAgZXhpdCgwKTsKCX0KICAgIH0K ICBpZiAoc3NjYW5mKGFyZ3ZbMV0sICIlbGQiLCAmYmFzZSkgPT0gMCkKICAgIHsKICAgICAgcHJp bnRmKCJCYXNlIGlzIGFuIGltcHJvcGVyIG51bWJlci4gXG4iKTsKICAgICAgZXhpdCgwKTsKICAg IH0KICBpZiAoc3NjYW5mKGFyZ3ZbMl0sICIlbGQiLCAmbG93aW50KSA9PSAwKQogICAgewogICAg ICBwcmludGYoIkxvdyBpbnRlZ2VyIGlzIGFuIGltcHJvcGVyIG51bWJlci4gXG4iKTsKICAgICAg ZXhpdCgwKTsKICAgIH0KICBpZiAoc3NjYW5mKGFyZ3ZbM10sICIlbGQiLCAmaGlnaGludCkgPT0g MCkKICAgIHsKICAgICAgcHJpbnRmKCJIaWdoIGludGVnZXIgaXMgYW4gaW1wcm9wZXIgbnVtYmVy LiBcbiIpOwogICAgICBleGl0KDApOwogICAgfQogIGFucyA9IGdldHRpbWVvZmRheSgmc3R0aW1l LCBOVUxMKTsKICBHZXRDb21wbGV0ZShiYXNlLCBsb3dpbnQsIGhpZ2hpbnQsIE91dEZpbGUpOwog IGFucyA9IGdldHRpbWVvZmRheSgmZW5kdGltZSwgTlVMTCk7CiAgbnVtbWljc2VjcyA9IGVuZHRp bWUudHZfdXNlYyAtIHN0dGltZS50dl91c2VjOwogIGxudW1zZWNzID0gZW5kdGltZS50dl9zZWMg LSBzdHRpbWUudHZfc2VjOwogIG51bXNlY3MgPSBsbnVtc2VjcyArICgoZG91YmxlKSBudW1taWNz ZWNzLzEwMDAwMDAuMCk7CiAgcHJpbnRmKCJUaGF0IHRvb2sgJWxmIHNlY29uZHNcbiIsICBudW1z ZWNzKTsKfQo=