• Tom Lane's avatar
    Protect against overflow of ltree.numlevel and lquery.numlevel. · 95f7ddfd
    Tom Lane authored
    These uint16 fields could be overflowed by excessively long input,
    producing strange results.  Complain for invalid input.
    
    Likewise check for out-of-range values of the repeat counts in lquery.
    (We don't try too hard on that one, notably not bothering to detect
    if atoi's result has overflowed.)
    
    Also detect length overflow in ltree_concat.
    
    In passing, be more consistent about whether "syntax error" messages
    include the type name.  Also, clarify the documentation about what
    the size limit is.
    
    This has been broken for a long time, so back-patch to all supported
    branches.
    
    Nikita Glukhov, reviewed by Benjie Gillam and Tomas Vondra
    
    Discussion: https://postgr.es/m/CAP_rww=waX2Oo6q+MbMSiZ9ktdj6eaJj0cQzNu=Ry2cCDij5fw@mail.gmail.com
    95f7ddfd
ltree_io.c 13.7 KB