libX11: Changes to 'master'

Peter Hutterer whot at kemper.freedesktop.org
Fri Mar 23 04:33:01 UTC 2018


 modules/im/ximcp/imLcIm.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit a9dafdd57c71473fa3a2ec4887e973e4e9876d83
Author: Michal Srb <msrb at suse.com>
Date:   Thu Mar 15 09:50:58 2018 +0100

    Use flexible array member instead of fake size.
    
    The _XimCacheStruct structure is followed in memory by two strings containing
    fname and encoding. The memory was accessed using the last member of the
    structure `char fname[1]`. That is a lie, prohibits us from using sizeof and
    confuses checkers. Lets declare it properly as a flexible array, so compilers
    don't complain about writing past that array. As bonus we can replace the
    XOffsetOf with regular sizeof.
    
    Fixes GCC8 error:
      In function 'strcpy',
          inlined from '_XimWriteCachedDefaultTree' at imLcIm.c:479:5,
          inlined from '_XimCreateDefaultTree' at imLcIm.c:616:2,
          inlined from '_XimLocalOpenIM' at imLcIm.c:700:5:
      /usr/include/bits/string_fortified.h:90:10: error: '__builtin_strcpy'
      forming offset 2 is out of the bounds [0, 1] [-Werror=array-bounds]
         return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
    
    Caused by this line seemingly writing past the fname[1] array:
      imLcIm.c:479:  strcpy (m->fname+strlen(name)+1, encoding);
    
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>



More information about the xorg-commit mailing list