chiark / gitweb /
basic/xattr-util: do not cast ssize_t to int
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 25 Feb 2018 20:25:33 +0000 (21:25 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 30 May 2018 05:59:05 +0000 (07:59 +0200)
commit2ec539cba1bc8ad1f6437eb91e4b81db7944e124
tree01e35761f8ce9b67b2a21e33cc2a56c20b78ebe6
parent4ca4f6ccba9a4f6d1f3dda848934d8fc0af1de21
basic/xattr-util: do not cast ssize_t to int

gcc warns about unitialized memory access because it notices that ssize_t which
is < 0 could be cast to positive int value. We know that this can't really
happen because only -1 can be returned, but OTOH, in principle a large
*positive* value cannot be cast properly. This is unlikely too, since xattrs
cannot be too large, but it seems cleaner to just use a size_t to return the
value and avoid the cast altoghter. This makes the code simpler and gcc is
happy too.

The following warning goes away:
[113/1502] Compiling C object 'src/basic/basic@sta/xattr-util.c.o'.
In file included from ../src/basic/alloc-util.h:28:0,
                 from ../src/basic/xattr-util.c:30:
../src/basic/xattr-util.c: In function ‘fd_getcrtime_at’:
../src/basic/macro.h:207:60: warning: ‘b’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 UNIQ_T(A,aq) < UNIQ_T(B,bq) ? UNIQ_T(A,aq) : UNIQ_T(B,bq); \
                                                            ^
../src/basic/xattr-util.c:155:19: note: ‘b’ was declared here
         usec_t a, b;
                   ^
src/basic/xattr-util.c
src/basic/xattr-util.h