mm/madvise.c:1438:6: warning: Redundant assignment of 'ret' to itself. [selfAssignment]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4b35035bcf80ddb47c0112c4fbd84a63a2836a18
commit: 5bd009c7c9a9e888077c07535dc0c70aeab242c3 mm: madvise: return correct bytes advised with process_madvise
date:   3 months ago
compiler: mips-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 5bd009c7c9a9e888077c07535dc0c70aeab242c3
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>


cppcheck warnings: (new ones prefixed by >>)
>> mm/madvise.c:1438:6: warning: Redundant assignment of 'ret' to itself. [selfAssignment]
    ret = (total_len - iov_iter_count(&iter)) ? : ret;
        ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   mm/madvise.c:123:28: warning: Parameter 'anon_name' can be declared with const [constParameter]
        struct anon_vma_name *anon_name)
                              ^

vim +/ret +1438 mm/madvise.c

  1378	
  1379	SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec,
  1380			size_t, vlen, int, behavior, unsigned int, flags)
  1381	{
  1382		ssize_t ret;
  1383		struct iovec iovstack[UIO_FASTIOV], iovec;
  1384		struct iovec *iov = iovstack;
  1385		struct iov_iter iter;
  1386		struct task_struct *task;
  1387		struct mm_struct *mm;
  1388		size_t total_len;
  1389		unsigned int f_flags;
  1390	
  1391		if (flags != 0) {
  1392			ret = -EINVAL;
  1393			goto out;
  1394		}
  1395	
  1396		ret = import_iovec(READ, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter);
  1397		if (ret < 0)
  1398			goto out;
  1399	
  1400		task = pidfd_get_task(pidfd, &f_flags);
  1401		if (IS_ERR(task)) {
  1402			ret = PTR_ERR(task);
  1403			goto free_iov;
  1404		}
  1405	
  1406		if (!process_madvise_behavior_valid(behavior)) {
  1407			ret = -EINVAL;
  1408			goto release_task;
  1409		}
  1410	
  1411		/* Require PTRACE_MODE_READ to avoid leaking ASLR metadata. */
  1412		mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
  1413		if (IS_ERR_OR_NULL(mm)) {
  1414			ret = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
  1415			goto release_task;
  1416		}
  1417	
  1418		/*
  1419		 * Require CAP_SYS_NICE for influencing process performance. Note that
  1420		 * only non-destructive hints are currently supported.
  1421		 */
  1422		if (!capable(CAP_SYS_NICE)) {
  1423			ret = -EPERM;
  1424			goto release_mm;
  1425		}
  1426	
  1427		total_len = iov_iter_count(&iter);
  1428	
  1429		while (iov_iter_count(&iter)) {
  1430			iovec = iov_iter_iovec(&iter);
  1431			ret = do_madvise(mm, (unsigned long)iovec.iov_base,
  1432						iovec.iov_len, behavior);
  1433			if (ret < 0)
  1434				break;
  1435			iov_iter_advance(&iter, iovec.iov_len);
  1436		}
  1437	
> 1438		ret = (total_len - iov_iter_count(&iter)) ? : ret;

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux