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>] [day] [month] [year] [list]
Message-ID: <ecd7a510-addc-449e-a5a0-3ea144a76917@gmail.com>
Date: Mon, 21 Oct 2024 15:58:56 +0100
From: "Colin King (gmail)" <colin.i.king@...il.com>
To: Steven Rostedt <rostedt@...dmis.org>,
 Masami Hiramatsu <mhiramat@...nel.org>,
 Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
 "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: linux-next: kernel/trace/ring_buffer.c


Hi,

Static analysis on today's linux next found an issue in 
kernel/trace/ring_buffer.c in line 1538, after a 
raw_spin_unlock_irqrestore() call.  There is a return statement on line 
1538 so that all subsequent code is not being executed, which doesn't 
look correct. Not sure what the return is doing, perhaps is a 
consequence of a mis-merge of code.

Colin


commit id     line  source
1f1c2bc9d0753 1527) again:
1f1c2bc9d0753 1528)      if (++nr_loops > 3)
b4b55dfd96505 1529)              return;
7a8e76a3829f1 1530)
1f1c2bc9d0753 1531)      raw_spin_lock_irqsave(&cpu_buffer->reader_lock, 
flags);
1f1c2bc9d0753 1532)      head = rb_list_head(cpu_buffer->pages);
1f1c2bc9d0753 1533)      if (!rb_check_links(cpu_buffer, head))
1f1c2bc9d0753 1534)              goto out_locked;
1f1c2bc9d0753 1535)      buffer_cnt = cpu_buffer->cnt;
1f1c2bc9d0753 1536)      tmp = head;
1f1c2bc9d0753 1537) 
raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
b4b55dfd96505 1538)              return;        /// <- issue HERE
77ae365eca895 1539)
1f1c2bc9d0753 1540)      while (true) {
1f1c2bc9d0753 1541) 
raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
8843e06f67b14 1542)
1f1c2bc9d0753 1543)              if (buffer_cnt != cpu_buffer->cnt) {
1f1c2bc9d0753 1544)                      /* The list was updated, try 
again. */
1f1c2bc9d0753 1545) 
raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
1f1c2bc9d0753 1546)                      goto again;
1f1c2bc9d0753 1547)              }
1f1c2bc9d0753 1548)
1f1c2bc9d0753 1549)              tmp = rb_list_head(tmp->next);
1f1c2bc9d0753 1550)              if (tmp == head)
1f1c2bc9d0753 1551)                      /* The iteration circled back, 
all is done. */
1f1c2bc9d0753 1552)                      goto out_locked;
1f1c2bc9d0753 1553)
1f1c2bc9d0753 1554)              if (!rb_check_links(cpu_buffer, tmp))
1f1c2bc9d0753 1555)                      goto out_locked;
1f1c2bc9d0753 1556)
1f1c2bc9d0753 1557) 
raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
7a8e76a3829f1 1558)      }

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ