From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id D6D313856DE8 for ; Tue, 9 Aug 2022 18:01:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D6D313856DE8 Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-194-E5-YGL_jNLSmAW1Dd64pmQ-1; Tue, 09 Aug 2022 14:01:56 -0400 X-MC-Unique: E5-YGL_jNLSmAW1Dd64pmQ-1 Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-10e79e47cceso2444933fac.15 for ; Tue, 09 Aug 2022 11:01:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc; bh=RHp8ULY3fntYLODEJaF53kMp7a0tam3iZXVkIDfIcH4=; b=06/9qem0XwJPILCHe3jpiWr42KvFQ1Cha1RRqSVuJFSJeiudUPKdMWVy2N+DzFfXwr 8zK5MHMLmH6W1n6z8cCs2/FFvRyEjNYxA/4guLrErqUjReW8738rUHwAyZsD3WPppGQL q7pIO/64ERsPPb5fklYm0E7WKujpT+yIqogCxXX1FkupVkbX5LDqb8mHljLBkdRbH/lz 0HAqlJivlw9TsjQXlIpVKDqeuai5P6GIKOqwzsERumsSam0drMhWlI+bTyeW0Pvtqtya /DtIsC3aTf27ti0NdAxturIOsnIOHxaZ5X0mujzZ6zEg6zMKkLM8NZ6x982coaCFsdoP sKyA== X-Gm-Message-State: ACgBeo2WKBYl+2j4oe/FTYdvPPfze5xy6fYJaIW4KABn/cYE+Dejsi3l hwcW/IU5Hg8SHm7HTl0s4JQNPXzaAtE2CPJgaT8PzDVRafbTn49ae2e54NU4js/Igl7lbBOtYpT GVuichrR83INJH8tnvHkfwhbgkuzAFSDRuLI4rKl4NQ== X-Received: by 2002:a05:6808:1596:b0:342:cdb4:f41b with SMTP id t22-20020a056808159600b00342cdb4f41bmr7219861oiw.188.1660068114774; Tue, 09 Aug 2022 11:01:54 -0700 (PDT) X-Google-Smtp-Source: AA6agR5lF5OeqkIMyJi3Tr0bEd6LmLRM1U7IVZmC3z0gaX4CATCv3FKjF6LMUTvwLEnlRuS9d6LoT1DaB0Y7KzuR5Mk= X-Received: by 2002:a05:6808:1596:b0:342:cdb4:f41b with SMTP id t22-20020a056808159600b00342cdb4f41bmr7219856oiw.188.1660068114608; Tue, 09 Aug 2022 11:01:54 -0700 (PDT) MIME-Version: 1.0 From: Ulrich Drepper Date: Tue, 9 Aug 2022 20:01:43 +0200 Message-ID: Subject: cannot skip augment string handling To: elfutils-devel@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000004685dd05e5d2babb" X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Aug 2022 18:02:00 -0000 --0000000000004685dd05e5d2babb Content-Type: text/plain; charset="UTF-8" He dwarf_next_cfi function has some clever code which skips over the processing of the augmentation string content if the first character is 'z' (for sized augmentation). This would be OK if it wouldn't be for the fact that the augment processing loop produces additional information, namely, it fills in the fde_augmentation_data_size fields. That information isn't available elsewhere. In addition, the loop over the augment string is incorrect because the interpretation of the P, L, and R entries depends on 'z' being present. in the absence of 'z', when the loop would be executed in the current version, the interpretation of those entries is not the same. In the patch below I've removed the shortcut and fixed the handling of the P, L, and R entries. I've also added an additional test checking that the entries of the augmentation string don't guide the code to consume more data then is indicated in the 'z' data. libdw/ChangeLog 2022-08-09 Ulrich Drepper * dwarf_next_cfi.c (dwarf_next_cfi): Don't skip processing the augmentation string. Be more stringent what to accept. --0000000000004685dd05e5d2babb Content-Type: text/x-patch; charset="US-ASCII"; name="d-dwarf_next_cf-ap.patch" Content-Disposition: attachment; filename="d-dwarf_next_cf-ap.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6mhnwqh0 ZGlmZiAtLWdpdCBhL2xpYmR3L2R3YXJmX25leHRfY2ZpLmMgYi9saWJkdy9kd2FyZl9uZXh0X2Nm aS5jCmluZGV4IGZhMjhkOTliLi4yM2IxNjg4NSAxMDA2NDQKLS0tIGEvbGliZHcvZHdhcmZfbmV4 dF9jZmkuYworKysgYi9saWJkdy9kd2FyZl9uZXh0X2NmaS5jCkBAIC0xOTMsNTAgKzE5Myw3MSBA QCBkd2FyZl9uZXh0X2NmaSAoY29uc3QgdW5zaWduZWQgY2hhciBlX2lkZW50W10sCiAgICAgICBl bHNlCQkJLyogRFdBUkYgMiAqLwogCWVudHJ5LT5jaWUucmV0dXJuX2FkZHJlc3NfcmVnaXN0ZXIg PSAqYnl0ZXMrKzsKIAotICAgICAgLyogSWYgd2UgaGF2ZSBzaXplZCBhdWdtZW50YXRpb24gZGF0 YSwKLQkgd2UgZG9uJ3QgbmVlZCB0byBncm9rIGl0IGFsbC4gICovCiAgICAgICBlbnRyeS0+Y2ll LmZkZV9hdWdtZW50YXRpb25fZGF0YV9zaXplID0gMDsKKyAgICAgIGVudHJ5LT5jaWUuYXVnbWVu dGF0aW9uX2RhdGEgPSBieXRlczsKICAgICAgIGJvb2wgc2l6ZWRfYXVnbWVudGF0aW9uID0gKmFw ID09ICd6JzsKICAgICAgIGlmIChzaXplZF9hdWdtZW50YXRpb24pCiAJeworCSAgKythcDsKIAkg IGlmIChieXRlcyA+PSBsaW1pdCkKIAkgICAgZ290byBpbnZhbGlkOwogCSAgZ2V0X3VsZWIxMjgg KGVudHJ5LT5jaWUuYXVnbWVudGF0aW9uX2RhdGFfc2l6ZSwgYnl0ZXMsIGxpbWl0KTsKIAkgIGlm ICgoRHdhcmZfV29yZCkgKGxpbWl0IC0gYnl0ZXMpIDwgZW50cnktPmNpZS5hdWdtZW50YXRpb25f ZGF0YV9zaXplKQogCSAgICBnb3RvIGludmFsaWQ7CiAJICBlbnRyeS0+Y2llLmF1Z21lbnRhdGlv bl9kYXRhID0gYnl0ZXM7Ci0JICBieXRlcyArPSBlbnRyeS0+Y2llLmF1Z21lbnRhdGlvbl9kYXRh X3NpemU7CiAJfQotICAgICAgZWxzZQotCXsKLQkgIGVudHJ5LT5jaWUuYXVnbWVudGF0aW9uX2Rh dGEgPSBieXRlczsKIAotCSAgZm9yICg7ICphcCAhPSAnXDAnOyArK2FwKQorICAgICAgZm9yICg7 ICphcCAhPSAnXDAnOyArK2FwKQorCXsKKwkgIHVpbnQ4X3QgZW5jb2Rpbmc7CisJICBzd2l0Y2gg KCphcCkKIAkgICAgewotCSAgICAgIHVpbnQ4X3QgZW5jb2Rpbmc7Ci0JICAgICAgc3dpdGNoICgq YXApCisJICAgIGNhc2UgJ0wnOgorCSAgICAgIGlmIChzaXplZF9hdWdtZW50YXRpb24pCiAJCXsK LQkJY2FzZSAnTCc6CQkvKiBTa2lwIExTREEgcG9pbnRlciBlbmNvZGluZyBieXRlLiAgKi8KLQkJ Y2FzZSAnUic6CQkvKiBTa2lwIEZERSBhZGRyZXNzIGVuY29kaW5nIGJ5dGUuICAqLworCQkgIC8q IFNraXAgTFNEQSBwb2ludGVyIGVuY29kaW5nIGJ5dGUuICAqLwogCQkgIGVuY29kaW5nID0gKmJ5 dGVzKys7CiAJCSAgZW50cnktPmNpZS5mZGVfYXVnbWVudGF0aW9uX2RhdGFfc2l6ZQogCQkgICAg Kz0gZW5jb2RlZF92YWx1ZV9zaXplIChkYXRhLCBlX2lkZW50LCBlbmNvZGluZywgTlVMTCk7CiAJ CSAgY29udGludWU7Ci0JCWNhc2UgJ1AnOiAgIC8qIFNraXAgZW5jb2RlZCBwZXJzb25hbGl0eSBy b3V0aW5lIHBvaW50ZXIuICovCisJCX0KKwkgICAgICBicmVhazsKKwkgICAgY2FzZSAnUic6CisJ ICAgICAgaWYgKHNpemVkX2F1Z21lbnRhdGlvbikKKwkJeworCQkgIC8qIFNraXAgRkRFIGFkZHJl c3MgZW5jb2RpbmcgYnl0ZS4gICovCiAJCSAgZW5jb2RpbmcgPSAqYnl0ZXMrKzsKLQkJICBieXRl cyArPSBlbmNvZGVkX3ZhbHVlX3NpemUgKGRhdGEsIGVfaWRlbnQsIGVuY29kaW5nLCBieXRlcyk7 CiAJCSAgY29udGludWU7Ci0JCWNhc2UgJ1MnOgkJLyogU2tpcCBzaWduYWwtZnJhbWUgZmxhZy4g ICovCisJCX0KKwkgICAgICBicmVhazsKKwkgICAgY2FzZSAnUCc6CisJICAgICAgaWYgKHNpemVk X2F1Z21lbnRhdGlvbikKKwkJeworCQkgIC8qIFNraXAgZW5jb2RlZCBwZXJzb25hbGl0eSByb3V0 aW5lIHBvaW50ZXIuICovCisJCSAgZW5jb2RpbmcgPSAqYnl0ZXMrKzsKKwkJICBieXRlcyArPSBl bmNvZGVkX3ZhbHVlX3NpemUgKGRhdGEsIGVfaWRlbnQsIGVuY29kaW5nLCBieXRlcyk7CiAJCSAg Y29udGludWU7Ci0JCWRlZmF1bHQ6Ci0JCSAgLyogVW5rbm93biBhdWdtZW50YXRpb24gc3RyaW5n LiAgaW5pdGlhbF9pbnN0cnVjdGlvbnMgbWlnaHQKLQkJICAgICBhY3R1YWxseSBzdGFydCB3aXRo IHNvbWUgYXVnbWVudGF0aW9uIGRhdGEuICAqLwotCQkgIGJyZWFrOwogCQl9CiAJICAgICAgYnJl YWs7CisJICAgIGNhc2UgJ1MnOgorCSAgICAgIGlmIChzaXplZF9hdWdtZW50YXRpb24pCisJCS8q IFNraXAgc2lnbmFsLWZyYW1lIGZsYWcuICAqLworCQljb250aW51ZTsKKwkgICAgICBicmVhazsK KwkgICAgZGVmYXVsdDoKKwkgICAgICAvKiBVbmtub3duIGF1Z21lbnRhdGlvbiBzdHJpbmcuICBp bml0aWFsX2luc3RydWN0aW9ucyBtaWdodAorCQkgYWN0dWFsbHkgc3RhcnQgd2l0aCBzb21lIGF1 Z21lbnRhdGlvbiBkYXRhLiAgKi8KKwkgICAgICBicmVhazsKIAkgICAgfQotCSAgZW50cnktPmNp ZS5hdWdtZW50YXRpb25fZGF0YV9zaXplCi0JICAgID0gYnl0ZXMgLSBlbnRyeS0+Y2llLmF1Z21l bnRhdGlvbl9kYXRhOworCSAgYnJlYWs7CisJfQorICAgICAgaWYgKCEgc2l6ZWRfYXVnbWVudGF0 aW9uKQorCWVudHJ5LT5jaWUuYXVnbWVudGF0aW9uX2RhdGFfc2l6ZSA9IGJ5dGVzIC0gZW50cnkt PmNpZS5hdWdtZW50YXRpb25fZGF0YTsKKyAgICAgIGVsc2UKKwl7CisJICBpZiAoYnl0ZXMgPiBl bnRyeS0+Y2llLmF1Z21lbnRhdGlvbl9kYXRhICsgZW50cnktPmNpZS5hdWdtZW50YXRpb25fZGF0 YV9zaXplKQorCSAgICBnb3RvIGludmFsaWQ7CisJICBieXRlcyA9IGVudHJ5LT5jaWUuYXVnbWVu dGF0aW9uX2RhdGEgKyBlbnRyeS0+Y2llLmF1Z21lbnRhdGlvbl9kYXRhX3NpemU7CiAJfQogCiAg ICAgICBlbnRyeS0+Y2llLmluaXRpYWxfaW5zdHJ1Y3Rpb25zID0gYnl0ZXM7Cg== --0000000000004685dd05e5d2babb--