* [viro-vfs:work.fd 1/1] net/socket.c:2949 do_recvmmsg() error: uninitialized symbol 'err'.
@ 2024-05-26 15:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-05-26 15:24 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-fsdevel@vger.kernel.org
TO: Al Viro <viro@zeniv.linux.org.uk>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.fd
head: 6de4430ff32f5deae7be314427f4d006122edb8d
commit: 6de4430ff32f5deae7be314427f4d006122edb8d [1/1] [experimental] net/socket.c: use straight fdget/fdput
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: um-randconfig-r071-20240526 (https://download.01.org/0day-ci/archive/20240526/202405262304.NzkXou0M-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 7aa382fd7257d9bd4f7fc50bb7078a3c26a1628c)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202405262304.NzkXou0M-lkp@intel.com/
smatch warnings:
net/socket.c:2949 do_recvmmsg() error: uninitialized symbol 'err'.
vim +/err +2949 net/socket.c
a7526eb5d06b00 Andy Lutomirski 2013-06-05 2859
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2860 /*
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2861 * Linux recvmmsg interface
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2862 */
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2863
e11d4284e2f4de Arnd Bergmann 2018-04-18 2864 static int do_recvmmsg(int fd, struct mmsghdr __user *mmsg,
e11d4284e2f4de Arnd Bergmann 2018-04-18 2865 unsigned int vlen, unsigned int flags,
e11d4284e2f4de Arnd Bergmann 2018-04-18 2866 struct timespec64 *timeout)
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2867 {
6de4430ff32f5d Al Viro 2024-05-25 2868 int err, datagrams;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2869 struct socket *sock;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2870 struct mmsghdr __user *entry;
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2871 struct compat_mmsghdr __user *compat_entry;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2872 struct msghdr msg_sys;
766b9f928bd5b9 Deepa Dinamani 2016-05-19 2873 struct timespec64 end_time;
766b9f928bd5b9 Deepa Dinamani 2016-05-19 2874 struct timespec64 timeout64;
6de4430ff32f5d Al Viro 2024-05-25 2875 CLASS(fd, f)(fd);
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2876
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2877 if (timeout &&
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2878 poll_select_set_timeout(&end_time, timeout->tv_sec,
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2879 timeout->tv_nsec))
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2880 return -EINVAL;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2881
6de4430ff32f5d Al Viro 2024-05-25 2882 if (fd_empty(f))
6de4430ff32f5d Al Viro 2024-05-25 2883 return -EBADF;
6de4430ff32f5d Al Viro 2024-05-25 2884 sock = sock_from_file(f.file);
6de4430ff32f5d Al Viro 2024-05-25 2885 if (unlikely(!sock))
6de4430ff32f5d Al Viro 2024-05-25 2886 return -ENOTSOCK;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2887
6de4430ff32f5d Al Viro 2024-05-25 2888 datagrams = 0;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2889
7797dc41417eb0 Soheil Hassas Yeganeh 2018-02-27 2890 if (likely(!(flags & MSG_ERRQUEUE))) {
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2891 err = sock_error(sock->sk);
6de4430ff32f5d Al Viro 2024-05-25 2892 if (err)
6de4430ff32f5d Al Viro 2024-05-25 2893 return err;
7797dc41417eb0 Soheil Hassas Yeganeh 2018-02-27 2894 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2895
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2896 entry = mmsg;
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2897 compat_entry = (struct compat_mmsghdr __user *)mmsg;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2898
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2899 while (datagrams < vlen) {
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2900 /*
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2901 * No need to ask LSM for more than the first datagram.
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2902 */
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2903 if (MSG_CMSG_COMPAT & flags) {
666547ff591ceb Al Viro 2014-04-06 2904 err = ___sys_recvmsg(sock, (struct user_msghdr __user *)compat_entry,
b9eb8b8752804c Anton Blanchard 2011-05-17 2905 &msg_sys, flags & ~MSG_WAITFORONE,
b9eb8b8752804c Anton Blanchard 2011-05-17 2906 datagrams);
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2907 if (err < 0)
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2908 break;
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2909 err = __put_user(err, &compat_entry->msg_len);
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2910 ++compat_entry;
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2911 } else {
a7526eb5d06b00 Andy Lutomirski 2013-06-05 2912 err = ___sys_recvmsg(sock,
666547ff591ceb Al Viro 2014-04-06 2913 (struct user_msghdr __user *)entry,
b9eb8b8752804c Anton Blanchard 2011-05-17 2914 &msg_sys, flags & ~MSG_WAITFORONE,
b9eb8b8752804c Anton Blanchard 2011-05-17 2915 datagrams);
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2916 if (err < 0)
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2917 break;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2918 err = put_user(err, &entry->msg_len);
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2919 ++entry;
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2920 }
d7256d0eb4c82b Jean-Mickael Guerin 2009-12-01 2921
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2922 if (err)
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2923 break;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2924 ++datagrams;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2925
71c5c1595c0485 Brandon L Black 2010-03-26 2926 /* MSG_WAITFORONE turns on MSG_DONTWAIT after one packet */
71c5c1595c0485 Brandon L Black 2010-03-26 2927 if (flags & MSG_WAITFORONE)
71c5c1595c0485 Brandon L Black 2010-03-26 2928 flags |= MSG_DONTWAIT;
71c5c1595c0485 Brandon L Black 2010-03-26 2929
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2930 if (timeout) {
766b9f928bd5b9 Deepa Dinamani 2016-05-19 2931 ktime_get_ts64(&timeout64);
c2e6c8567acdba Arnd Bergmann 2018-04-18 2932 *timeout = timespec64_sub(end_time, timeout64);
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2933 if (timeout->tv_sec < 0) {
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2934 timeout->tv_sec = timeout->tv_nsec = 0;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2935 break;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2936 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2937
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2938 /* Timeout, return less than vlen datagrams */
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2939 if (timeout->tv_nsec == 0 && timeout->tv_sec == 0)
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2940 break;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2941 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2942
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2943 /* Out of band data, return right away */
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2944 if (msg_sys.msg_flags & MSG_OOB)
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2945 break;
a78cb84c62c427 Eric Dumazet 2016-01-08 2946 cond_resched();
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2947 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2948
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 @2949 if (err == 0)
6de4430ff32f5d Al Viro 2024-05-25 2950 return datagrams;
34b88a68f26a75 Arnaldo Carvalho de Melo 2016-03-14 2951
6de4430ff32f5d Al Viro 2024-05-25 2952 if (datagrams == 0)
6de4430ff32f5d Al Viro 2024-05-25 2953 return err;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2954
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2955 /*
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2956 * We may return less entries than requested (vlen) if the
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2957 * sock is non block and there aren't enough datagrams...
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2958 */
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2959 if (err != -EAGAIN) {
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2960 /*
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2961 * ... or if recvmsg returns an error after we
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2962 * received some datagrams, where we record the
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2963 * error to return on the next call or if the
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2964 * app asks about it using getsockopt(SO_ERROR).
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2965 */
e05a5f510f2660 Eric Dumazet 2023-05-09 2966 WRITE_ONCE(sock->sk->sk_err, -err);
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2967 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2968 return datagrams;
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2969 }
a2e2725541fad7 Arnaldo Carvalho de Melo 2009-10-12 2970
:::::: The code at line 2949 was first introduced by commit
:::::: a2e2725541fad72416326798c2d7fa4dafb7d337 net: Introduce recvmmsg socket syscall
:::::: TO: Arnaldo Carvalho de Melo <acme@redhat.com>
:::::: CC: David S. Miller <davem@davemloft.net>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-05-26 15:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-26 15:24 [viro-vfs:work.fd 1/1] net/socket.c:2949 do_recvmmsg() error: uninitialized symbol 'err' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.