Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 2f7d77c in mainline for kernel/generic/src/lib/memfnc.c


Ignore:
Timestamp:
2018-06-14T19:02:26Z (3 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Branches:
master
Children:
587478b
Parents:
abf8bd8
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-06-14 17:48:39)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-06-14 19:02:26)
Message:

Add rudimentary support for undefined behavior sanitizer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/lib/memfnc.c

    rabf8bd8 r2f7d77c  
    8787}
    8888
     89/** Compare two memory areas.
     90 *
     91 * @param s1  Pointer to the first area to compare.
     92 * @param s2  Pointer to the second area to compare.
     93 * @param len Size of the areas in bytes.
     94 *
     95 * @return Zero if areas have the same contents. If they differ,
     96 *         the sign of the result is the same as the sign of the
     97 *         difference of the first pair of different bytes.
     98 *
     99 */
     100int memcmp(const void *s1, const void *s2, size_t len)
     101{
     102        uint8_t *u1 = (uint8_t *) s1;
     103        uint8_t *u2 = (uint8_t *) s2;
     104        size_t i;
     105
     106        for (i = 0; i < len; i++) {
     107                if (*u1 != *u2)
     108                        return (int)(*u1) - (int)(*u2);
     109                ++u1;
     110                ++u2;
     111        }
     112
     113        return 0;
     114}
     115
    89116/** @}
    90117 */
Note: See TracChangeset for help on using the changeset viewer.