Whamcloud - gitweb
LU-16980 build: fix gcc-12 [-Werror=use-after-free] error 19/51819/1
authorJian Yu <yujian@whamcloud.com>
Mon, 31 Jul 2023 17:24:02 +0000 (10:24 -0700)
committerJian Yu <yujian@whamcloud.com>
Mon, 31 Jul 2023 17:24:02 +0000 (10:24 -0700)
commit8fa48300347ac3c7dffb361d1686c434127fe3e1
treeb6954554fb72af3e9c94ea7351d3c86ba3ee874c
parent0f7e6c02a9ea5b85d8d97f724bed318268cea60f
LU-16980 build: fix gcc-12 [-Werror=use-after-free] error

This patch fixes the following [-Werror=use-after-free] and
[-Werror=stringop-overflow=] errors detected by gcc 12:

libcfs/include/libcfs/util/list.h:481:42: error: pointer 'tmp'
used after 'free' [-Werror=use-after-free]
  481 |              pos = list_entry(pos->member.next, typeof(*pos), member),  \
      |                                          ^
libcfs/include/libcfs/util/list.h:239:28: note: in definition of macro 'list_entry'
  239 |         ((type *)((char *)(ptr)-(char *)(&((type *)0)->member)))
      |                            ^~~
obd.c:5118:9: note: in expansion of macro 'list_for_each_entry'
 5118 |         list_for_each_entry(tmp, head, lpn_list) {
      |         ^~~~~~~~~~~~~~~~~~~
obd.c:5124:17: note: call to 'free' here
 5124 |                 free(tmp);
      |                 ^~~~~~~~~

test_brw.c: In function 'main':
test_brw.c:227:22: error: 'write' specified size between 9223372036854775808
and 18446744073709551615 exceeds maximum object size 9223372036854775807
[-Werror=stringop-overflow=]
  227 |                 rc = write(fd, buf, len);
      |                      ^~~~~~~~~~~~~~~~~~~

Change-Id: Ibe783ab0d13e2ecde1736946323932ab5db53740
Signed-off-by: Jian Yu <yujian@whamcloud.com>
lustre/tests/test_brw.c
lustre/utils/obd.c