lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL_JsqKzsCvS2QKUo7x4eJ2s6p4=3_d38hyMvsVt7RySjHoGgw@mail.gmail.com>
Date:   Mon, 6 Dec 2021 14:31:58 -0600
From:   Rob Herring <robh@...nel.org>
To:     Dan Carpenter <dan.carpenter@...cle.com>,
        Lakshmi Ramasubramanian <nramas@...ux.microsoft.com>
Cc:     kbuild@...ts.01.org, lkp@...el.com, kbuild-all@...ts.01.org,
        linux-kernel@...r.kernel.org,
        Thiago Jung Bauermann <bauerman@...ux.ibm.com>
Subject: Re: arch/arm64/kernel/machine_kexec_file.c:152 load_other_segments()
 warn: missing error code 'ret'

On Wed, Dec 1, 2021 at 5:47 AM Dan Carpenter <dan.carpenter@...cle.com> wrote:
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5
> commit: ac10be5cdbfa852139658d52c2f1c608782ce992 arm64: Use common of_kexec_alloc_and_setup_fdt()
> config: arm64-randconfig-m031-20211127 (https://download.01.org/0day-ci/archive/20211128/202111280304.FL2314qf-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 11.2.0
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
> Reported-by: Dan Carpenter <dan.carpenter@...cle.com>
>
> smatch warnings:
> arch/arm64/kernel/machine_kexec_file.c:152 load_other_segments() warn: missing error code 'ret'

Lakshmi, Can you please prepare a fix for this. It's been reported since July.

>
> vim +/ret +152 arch/arm64/kernel/machine_kexec_file.c
>
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   81  int load_other_segments(struct kimage *image,
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   82                          unsigned long kernel_load_addr,
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   83                          unsigned long kernel_size,
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   84                          char *initrd, unsigned long initrd_len,
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   85                          char *cmdline)
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   86  {
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   87          struct kexec_buf kbuf;
> 3751e728cef290 AKASHI Takahiro         2019-12-16   88          void *headers, *dtb = NULL;
> 108aa503657ee2 Benjamin Gwin           2020-11-03   89          unsigned long headers_sz, initrd_load_addr = 0, dtb_len,
> 108aa503657ee2 Benjamin Gwin           2020-11-03   90                        orig_segments = image->nr_segments;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   91          int ret = 0;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   92
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   93          kbuf.image = image;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   94          /* not allocate anything below the kernel */
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   95          kbuf.buf_min = kernel_load_addr + kernel_size;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15   96
> 3751e728cef290 AKASHI Takahiro         2019-12-16   97          /* load elf core header */
> 3751e728cef290 AKASHI Takahiro         2019-12-16   98          if (image->type == KEXEC_TYPE_CRASH) {
> 3751e728cef290 AKASHI Takahiro         2019-12-16   99                  ret = prepare_elf_headers(&headers, &headers_sz);
> 3751e728cef290 AKASHI Takahiro         2019-12-16  100                  if (ret) {
> 3751e728cef290 AKASHI Takahiro         2019-12-16  101                          pr_err("Preparing elf core header failed\n");
> 3751e728cef290 AKASHI Takahiro         2019-12-16  102                          goto out_err;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  103                  }
> 3751e728cef290 AKASHI Takahiro         2019-12-16  104
> 3751e728cef290 AKASHI Takahiro         2019-12-16  105                  kbuf.buffer = headers;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  106                  kbuf.bufsz = headers_sz;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  107                  kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  108                  kbuf.memsz = headers_sz;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  109                  kbuf.buf_align = SZ_64K; /* largest supported page size */
> 3751e728cef290 AKASHI Takahiro         2019-12-16  110                  kbuf.buf_max = ULONG_MAX;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  111                  kbuf.top_down = true;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  112
> 3751e728cef290 AKASHI Takahiro         2019-12-16  113                  ret = kexec_add_buffer(&kbuf);
> 3751e728cef290 AKASHI Takahiro         2019-12-16  114                  if (ret) {
> 3751e728cef290 AKASHI Takahiro         2019-12-16  115                          vfree(headers);
> 3751e728cef290 AKASHI Takahiro         2019-12-16  116                          goto out_err;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  117                  }
> 7b558cc3564e6c Lakshmi Ramasubramanian 2021-02-21  118                  image->elf_headers = headers;
> 7b558cc3564e6c Lakshmi Ramasubramanian 2021-02-21  119                  image->elf_load_addr = kbuf.mem;
> 7b558cc3564e6c Lakshmi Ramasubramanian 2021-02-21  120                  image->elf_headers_sz = headers_sz;
> 3751e728cef290 AKASHI Takahiro         2019-12-16  121
> 3751e728cef290 AKASHI Takahiro         2019-12-16  122                  pr_debug("Loaded elf core header at 0x%lx bufsz=0x%lx memsz=0x%lx\n",
> 7b558cc3564e6c Lakshmi Ramasubramanian 2021-02-21  123                           image->elf_load_addr, kbuf.bufsz, kbuf.memsz);
> 3751e728cef290 AKASHI Takahiro         2019-12-16  124          }
> 3751e728cef290 AKASHI Takahiro         2019-12-16  125
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  126          /* load initrd */
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  127          if (initrd) {
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  128                  kbuf.buffer = initrd;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  129                  kbuf.bufsz = initrd_len;
> c19d050f808812 Bhupesh Sharma          2019-07-11  130                  kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  131                  kbuf.memsz = initrd_len;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  132                  kbuf.buf_align = 0;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  133                  /* within 1GB-aligned window of up to 32GB in size */
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  134                  kbuf.buf_max = round_down(kernel_load_addr, SZ_1G)
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  135                                                  + (unsigned long)SZ_1G * 32;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  136                  kbuf.top_down = false;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  137
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  138                  ret = kexec_add_buffer(&kbuf);
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  139                  if (ret)
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  140                          goto out_err;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  141                  initrd_load_addr = kbuf.mem;
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  142
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  143                  pr_debug("Loaded initrd at 0x%lx bufsz=0x%lx memsz=0x%lx\n",
> 51075e0cb759a7 Ɓukasz Stelmach         2020-04-30  144                                  initrd_load_addr, kbuf.bufsz, kbuf.memsz);
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  145          }
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  146
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  147          /* load dtb */
> ac10be5cdbfa85 Rob Herring             2021-02-21  148          dtb = of_kexec_alloc_and_setup_fdt(image, initrd_load_addr,
> ac10be5cdbfa85 Rob Herring             2021-02-21  149                                             initrd_len, cmdline, 0);
> ac10be5cdbfa85 Rob Herring             2021-02-21  150          if (!dtb) {
> 52b2a8af743604 AKASHI Takahiro         2018-11-15  151                  pr_err("Preparing for new dtb failed\n");
> 52b2a8af743604 AKASHI Takahiro         2018-11-15 @152                  goto out_err;
>                                                                         ^^^^^^^^^^^^^
> This needs an error code.
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ