• unknown's avatar
    Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server" · ce39d294
    unknown authored
    Crash happened when one selected data from one of INFORMATION_SCHEMA
    tables and in order to build its contents server had to open view which
    used stored function and table or view on which one had not global or
    database-level privileges (e.g. had only table-level or had no
    privileges at all).
    
    The crash was caused by usage of check_grant() function, which assumes
    that either number of tables to be inspected by it is limited explicitly
    or table list used and thd->lex->query_tables_own_last value correspond
    to each other (the latter should be either 0 or point to next_global
    member of one of elements of this table list), in conditions when
    above assumptions were not true. This fix just explicitly limits
    number of tables to be inspected. Other negative effects which are
    caused by the fact that thd->lex->query_tables_own_last might not
    be set properly during processing of I_S tables are less disastrous
    and will be reported and fixed separetely.
    
    
    
    mysql-test/r/information_schema_db.result:
      Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server"
        test case
    mysql-test/t/information_schema_db.test:
      Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server"
        test case
    sql/sql_acl.cc:
        added note
    ce39d294
information_schema_db.result 915 Bytes