Please check whether line 212 is reachable from line 198. julia ---------- Forwarded message ---------- Date: Sat, 27 Jan 2018 16:00:47 +0800 From: kbuild test robot <fengguang.wu@xxxxxxxxx> To: kbuild@xxxxxx Cc: Julia Lawall <julia.lawall@xxxxxxx> Subject: [staging:staging-next 446/587] drivers/staging/lustre/lnet/lnet/lib-socket.c:212:16-19: ERROR: reference preceded by free on line 198 tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3384e01179eff2b2fe91ba7bcad98ee2be5f87f7 commit: 464dbfcaa2d581c6bc03e87c73af1dc403336b85 [446/587] staging: lustre: more LIBCFS_ALLOC conversions to GFP_KERNEL allocations. :::::: branch date: 18 hours ago :::::: commit date: 3 weeks ago >> drivers/staging/lustre/lnet/lnet/lib-socket.c:212:16-19: ERROR: reference preceded by free on line 198 drivers/staging/lustre/lnet/lnet/lib-socket.c:238:7-10: ERROR: reference preceded by free on line 198 -- >> drivers/staging/lustre/lnet/selftest/conctl.c:651:10-17: WARNING opportunity for memdup_user drivers/staging/lustre/lnet/selftest/conctl.c:704:7-14: WARNING opportunity for memdup_user # https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?id=464dbfcaa2d581c6bc03e87c73af1dc403336b85 git remote add staging https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git git remote update staging git checkout 464dbfcaa2d581c6bc03e87c73af1dc403336b85 vim +212 drivers/staging/lustre/lnet/lnet/lib-socket.c d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 148 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 149 int 1ad6a73ef drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 150 lnet_ipif_enumerate(char ***namesp) d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 151 { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 152 /* Allocate and fill in 'names', returning # interfaces/error */ d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 153 char **names; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 154 int toobig; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 155 int nalloc; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 156 int nfound; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 157 struct ifreq *ifr; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 158 struct ifconf ifc; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 159 int rc; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 160 int nob; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 161 int i; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 162 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 163 nalloc = 16; /* first guess at max interfaces */ d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 164 toobig = 0; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 165 for (;;) { 09cbfeaf1 drivers/staging/lustre/lnet/lnet/lib-socket.c Kirill A. Shutemov 2016-04-01 166 if (nalloc * sizeof(*ifr) > PAGE_SIZE) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 167 toobig = 1; 09cbfeaf1 drivers/staging/lustre/lnet/lnet/lib-socket.c Kirill A. Shutemov 2016-04-01 168 nalloc = PAGE_SIZE / sizeof(*ifr); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 169 CWARN("Too many interfaces: only enumerating first %d\n", d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 170 nalloc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 171 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 172 464dbfcaa drivers/staging/lustre/lnet/lnet/lib-socket.c NeilBrown 2018-01-09 173 ifr = kzalloc(nalloc * sizeof(*ifr), GFP_KERNEL); 06ace26ed drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2016-02-12 174 if (!ifr) { 730928920 drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 175 CERROR("ENOMEM enumerating up to %d interfaces\n", 730928920 drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 176 nalloc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 177 rc = -ENOMEM; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 178 goto out0; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 179 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 180 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 181 ifc.ifc_buf = (char *)ifr; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 182 ifc.ifc_len = nalloc * sizeof(*ifr); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 183 1ad6a73ef drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 184 rc = lnet_sock_ioctl(SIOCGIFCONF, (unsigned long)&ifc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 185 if (rc < 0) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 186 CERROR("Error %d enumerating interfaces\n", rc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 187 goto out1; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 188 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 189 5fd88337d drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2016-02-12 190 LASSERT(!rc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 191 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 192 nfound = ifc.ifc_len / sizeof(*ifr); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 193 LASSERT(nfound <= nalloc); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 194 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 195 if (nfound < nalloc || toobig) d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 196 break; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 197 464dbfcaa drivers/staging/lustre/lnet/lnet/lib-socket.c NeilBrown 2018-01-09 @198 kfree(ifr); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 199 nalloc *= 2; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 200 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 201 5fd88337d drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2016-02-12 202 if (!nfound) d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 203 goto out1; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 204 464dbfcaa drivers/staging/lustre/lnet/lnet/lib-socket.c NeilBrown 2018-01-09 205 names = kzalloc(nfound * sizeof(*names), GFP_KERNEL); 06ace26ed drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2016-02-12 206 if (!names) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 207 rc = -ENOMEM; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 208 goto out1; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 209 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 210 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 211 for (i = 0; i < nfound; i++) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 @212 nob = strnlen(ifr[i].ifr_name, IFNAMSIZ); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 213 if (nob == IFNAMSIZ) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 214 /* no space for terminating NULL */ d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 215 CERROR("interface name %.*s too long (%d max)\n", d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 216 nob, ifr[i].ifr_name, IFNAMSIZ); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 217 rc = -ENAMETOOLONG; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 218 goto out2; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 219 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 220 464dbfcaa drivers/staging/lustre/lnet/lnet/lib-socket.c NeilBrown 2018-01-09 221 names[i] = kmalloc(IFNAMSIZ, GFP_KERNEL); 06ace26ed drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2016-02-12 222 if (!names[i]) { d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 223 rc = -ENOMEM; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 224 goto out2; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 225 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 226 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 227 memcpy(names[i], ifr[i].ifr_name, nob); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 228 names[i][nob] = 0; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 229 } d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 230 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 231 *namesp = names; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 232 rc = nfound; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 233 d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 234 out2: d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 235 if (rc < 0) 1ad6a73ef drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 236 lnet_ipif_free_enumeration(names, nfound); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 237 out1: 464dbfcaa drivers/staging/lustre/lnet/lnet/lib-socket.c NeilBrown 2018-01-09 238 kfree(ifr); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 239 out0: d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 240 return rc; d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 241 } 1ad6a73ef drivers/staging/lustre/lnet/lnet/lib-socket.c James Simmons 2015-06-08 242 EXPORT_SYMBOL(lnet_ipif_enumerate); d7e09d039 drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c Peng Tao 2013-05-02 243 :::::: The code at line 212 was first introduced by commit :::::: d7e09d0397e84eefbabfd9cb353221f3c6448d83 staging: add Lustre file system client support :::::: TO: Peng Tao <bergwolf@xxxxxxxxx> :::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel