]> git.ipfire.org Git - thirdparty/libsolv.git/commit
Fix out of bounds compilation warning 277/head
authorDenis Ollier <larchunix@users.noreply.github.com>
Thu, 9 Aug 2018 21:05:04 +0000 (23:05 +0200)
committerDenis Ollier <larchunix@users.noreply.github.com>
Thu, 9 Aug 2018 21:05:04 +0000 (23:05 +0200)
commit9eddebd7034e3299ea932883ad5782a292cf0aca
tree9bea4d2ccb0240357b14672f220c9d80c771a9b2
parent38c5374d4712667b0b6ada4bf78ddbb343095d0c
Fix out of bounds compilation warning

When compiling with -D_FORTIFY_SOURCE=2, gcc raises the following
warning:

    In file included from /usr/include/string.h:494,
                     from /build/libsolv/src/libsolv-0.6.35/src/policy.c:16:
    In function ‘memcpy’,
        inlined from ‘urpm_reorder.isra.18’ at /build/libsolv/src/libsolv-0.6.35/src/policy.c:1239:9:
    /usr/include/bits/string_fortified.h:34:10: warning: ‘__builtin_memcpy’ forming offset 8 is out of the bounds [0, 7] [-Warray-bounds]
       return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Culprit code is:

     memcpy(kn, "kernel", 8);
     memcpy(kn + 6, flavor, release - flavor + 1);

The first memcpy copies 8 bytes whereas the string "kernel" as only 7
bytes. It does not have serious consequence since the second memcpy
overwrites the unwanted byte. Anyway, it is better to fix it.
src/policy.c