bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/22714] Assembler preprocessor loses track of \@


From: cvs-commit at gcc dot gnu.org
Subject: [Bug gas/22714] Assembler preprocessor loses track of \@
Date: Wed, 31 Jan 2018 06:31:53 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22714

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Alan Modra <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ab1fadc6b2f057b817e1fc093650b63d9f6dd6c5

commit ab1fadc6b2f057b817e1fc093650b63d9f6dd6c5
Author: Alan Modra <address@hidden>
Date:   Wed Jan 31 13:34:18 2018 +1030

    PR22714, Assembler preprocessor loses track of \@

    The PR22714 testcase is such that the input buffer processed by
    do_scrub_chars ends on this line

    1: bug "Returning to usermode but unexpected PSR bits set?", \@

    right at the backslash.  (The line is part of a macro definition.)
    The next input buffer then starts with '@' which starts a comment on
    ARM, and the check for \@ fails due to to == tostart.  Now it would be
    possible to simply access to[-1] in this particular case, but that's
    ugly, and to be absolutely safe from people deliberately trying to
    crash gas we'd need the read.c:read_a_source_file buffer passed to
    do_scrub_chars to have a single byte pad at the start.

        PR 22714
        * app.c (last_char): New static var.
        (struct app_save): Add last_char field.
        (app_push, app_pop): Handle it.
        (do_scrub_chars): Use last_char in test for "\@".  Set last_char.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]