• Guido van Rossum's avatar
    Another veeeeeery old patch... · fccfe897
    Guido van Rossum yazdı
    Date:    Thu, 14 Sep 1995 12:18:20 -0400
    From:    Alan Morse <alan@dvcorp.com>
    To:      python-list@cwi.nl
    Subject: getargs bug in 1.2 and 1.3 BETA
    
    We have found a bug in the part of the getargs code that we added
    and submitted, and which was incorporated into 1.1.
    
    The parsing of "O?" format specifiers is not handled correctly;
    there is no "else" for the "if" and therefore it can never fail.
    What's worse, the advancing of the varargs pointer is not
    handled properly, so from then on it is out of sync, wreaking
    all sorts of havoc. (If it had failed properly, then the out-of-sync
    varargs would not have been an issue.)
    
    Below is the context diff for the change.
    
    Note that I have made a few stylistic changes beyond adding the
    else case, namely:
    
    1) Making the "O" case follow the convention established by the other
    format specifiers of getting all their vararg arguments before
    performing the test, rather than getting some before and some after
    the test passes.
    
    2) Making the logic of the tests parallel, so the "if" part indicates
    that the format is accepted and the "else" part indicates that the
    format has failed. They were inconsistent with each other and with the
    the other format specifiers.
    
    -Alan Morse (amorse@dvcorp.com)
    fccfe897
getargs.c 22.7 KB