You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(3) |
2
|
3
|
4
|
|
5
(13) |
6
(2) |
7
(5) |
8
(4) |
9
(3) |
10
(4) |
11
(4) |
|
12
(7) |
13
|
14
(1) |
15
|
16
|
17
(2) |
18
|
|
19
|
20
|
21
(3) |
22
(8) |
23
(7) |
24
(5) |
25
(4) |
|
26
(6) |
27
|
28
(9) |
29
|
30
(4) |
31
(5) |
|
|
From: Paul F. <pj...@wa...> - 2023-03-12 15:56:06
|
Hi
I'm starting to look at adding alignment checks for the various aligned
allocators in memcheck.
That will give us errors like ASAN:
==89579==ERROR: AddressSanitizer: invalid alignment requested in
posix_memalign: -1, alignment must be a power of two and a multiple of
sizeof(void*) == 8 (thread T0)
#0 0x28e487 in posix_memalign
/usr/src/contrib/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:210:3
#1 0x2b7c00 in main
/usr/home/paulf/scratch/valgrind/memcheck/tests/posix_memalign.c:39:10
#2 0x23542f in _start /usr/src/lib/csu/amd64/crt1_c.c:75:7
#3 0x8002dd007 (<unknown module>)
There are two problems. Firstly we map 4 C aligned allocation functions
(memalign, posix_memalign, aligned_alloc and valloc) to our one wrapper
interface, tl_memalign. So we don't know which function to check for.
Secondly we do argument checking / fixup in vg_replace_malloc. That
means that at the moment invalid args often cause a fail before getting
to memcheck.
To discriminate between the functions, the easiest thing will probably
be to add an enum tag (splitting tl_memalign into 3 will be a lot of
effort).
I see two possible solutions for the checks.
1/ move all the checking later so that memcheck can see the arguments.
2/ use a client req before all of the argument twiddling
I'm leaning more to using a client req as it has less impact on the
existing flow.
Any thoughts?
A+
Paul
|
|
From: Paul F. <pj...@wa...> - 2023-03-12 12:01:02
|
On 06-03-23 12:03, Nicholas Nethercote wrote: > Hi, > > Perl was a reasonable choice for `cg_annotate` when I first wrote it 20+ > years ago. But it's unfortunate now, with Perl being (a) a pretty weird > and horrible language, and (b) moribund. > > I'd like to rewrite it (and `cg_diff`) in Python, which will make > maintenance easier. I see that we already have some Python in Valgrind: > `coregrind/m_gdbserver/valgrind-monitor.py` and > `coregrind/m_gdbserver/valgrind-monitor-def.py`. Therefore I don't think > this should be controversial. > > But I might as well ask, just in case: any objections or advice? Because > these are single file scripts, we avoid all the usual problems of Python > packaging, and just use `cp` as the package manager :) > > On a related note, the `cg_annotate.in > <http://cg_annotate.in>`/`cg_annotate` split is annoying. The only > reason for it now is to auto-embed the version number into the script, > via the configure `@VERSION@` variable, for `cg_annotate --version` > output. Does anyone know of a way to achieve that without requiring > configure? Hi Nick Scripting languages aren't my strong point, but I'd say for me Python is the least worst choice. The only think I can think of to get the version is to use something like pkg-config --modversion valgrind Cheers Paul |
|
From: Paul F. <pa...@so...> - 2023-03-12 10:13:08
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=50f65336127b5f63c8af55544ce3e6a9bc834355 commit 50f65336127b5f63c8af55544ce3e6a9bc834355 Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 11:12:29 2023 +0100 coverity: a couple of potential buffer overruns Diff: --- coregrind/launcher-freebsd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coregrind/launcher-freebsd.c b/coregrind/launcher-freebsd.c index 792a4bd239..030b183b57 100644 --- a/coregrind/launcher-freebsd.c +++ b/coregrind/launcher-freebsd.c @@ -83,7 +83,7 @@ static const char *find_client(const char *clientname) while (path) { if ((colon = strchr(path, ':')) == NULL) { - strcpy(fullname, path); + strlcpy(fullname, path, PATH_MAX); path = NULL; } else { memcpy(fullname, path, colon - path); @@ -91,8 +91,8 @@ static const char *find_client(const char *clientname) path = colon + 1; } - strcat(fullname, "/"); - strcat(fullname, clientname); + strlcat(fullname, "/", PATH_MAX); + strlcat(fullname, clientname, PATH_MAX); if (access(fullname, R_OK|X_OK) == 0) { return fullname; |
|
From: Paul F. <pa...@so...> - 2023-03-12 08:40:29
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d3a49926ad4c35e7d72bd435cf111d4cf507be54 commit d3a49926ad4c35e7d72bd435cf111d4cf507be54 Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 09:39:35 2023 +0100 coverity: printf args format mismatch Diff: --- coregrind/vgdb-invoker-freebsd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coregrind/vgdb-invoker-freebsd.c b/coregrind/vgdb-invoker-freebsd.c index 4a8a97cb7c..27e1943685 100644 --- a/coregrind/vgdb-invoker-freebsd.c +++ b/coregrind/vgdb-invoker-freebsd.c @@ -315,7 +315,7 @@ Bool attach (pid_t pid, const char *msg) res = ptrace (PT_ATTACH, pid, 0, 0); if (res != 0) { if (output_error || debuglevel > 0) { - ERROR(errno, "%s PT_ATTACH pid %d %ld\n", msg, pid, res); + ERROR(errno, "%s PT_ATTACH pid %d %d\n", msg, pid, res); if (initial_attach) { output_error = False; } |
|
From: Paul F. <pa...@so...> - 2023-03-12 08:22:41
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=18c278f386ba0e028800faa9eac658dfe6e727b1 commit 18c278f386ba0e028800faa9eac658dfe6e727b1 Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 09:22:10 2023 +0100 coverity: copy paste error Diff: --- coregrind/m_syswrap/syswrap-amd64-freebsd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-amd64-freebsd.c b/coregrind/m_syswrap/syswrap-amd64-freebsd.c index e54b157dd7..00c353ae41 100644 --- a/coregrind/m_syswrap/syswrap-amd64-freebsd.c +++ b/coregrind/m_syswrap/syswrap-amd64-freebsd.c @@ -962,7 +962,7 @@ POST(sys_wait6) } if (ARG6) { - POST_MEM_WRITE(ARG5, sizeof(vki_siginfo_t)); + POST_MEM_WRITE(ARG6, sizeof(vki_siginfo_t)); } } |
|
From: Paul F. <pa...@so...> - 2023-03-12 07:22:33
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=a1bb70bbf1f627461c30c626cbb853fce9411926 commit a1bb70bbf1f627461c30c626cbb853fce9411926 Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 08:21:55 2023 +0100 FreeBSD: fix a syswrap compiler warning Diff: --- coregrind/m_syswrap/syswrap-freebsd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-freebsd.c b/coregrind/m_syswrap/syswrap-freebsd.c index 0d64d57605..fd4dff4da4 100644 --- a/coregrind/m_syswrap/syswrap-freebsd.c +++ b/coregrind/m_syswrap/syswrap-freebsd.c @@ -4898,7 +4898,7 @@ POST(sys_rtprio_thread) PRE(sys_sctp_generic_sendmsg) { *flags |= SfMayBlock; - PRINT("sys_sctp_generic_sendmsg ( %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d )",SARG1,ARG2,ARG3,ARG4,SARG5,ARG6,SARG7); + PRINT("sys_sctp_generic_sendmsg ( %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d, %#" FMT_REGWORD "x, %" FMT_REGWORD "d )",SARG1,ARG2,SARG3,ARG4,SARG5,ARG6,SARG7); PRE_REG_READ7(ssize_t, "sctp_generic_sendmsg", int, s, void *, msg, int, msglen, struct sockaddr *, to, socklen_t, len, |
|
From: Paul F. <pa...@so...> - 2023-03-12 07:21:47
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=8532c8b5e43ba4453ebfbe3169e4e9fc973fef3b commit 8532c8b5e43ba4453ebfbe3169e4e9fc973fef3b Author: Paul Floyd <pj...@wa...> Date: Sun Mar 12 08:20:57 2023 +0100 regtest: add an s390 expected for sized_aligned_new_delete_args Diff: --- memcheck/tests/Makefile.am | 1 + .../sized_aligned_new_delete_args.stderr.exp-s390 | 96 ++++++++++++++++++++++ 2 files changed, 97 insertions(+) diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index 7600981687..0509d45869 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -143,6 +143,7 @@ EXTRA_DIST = \ sized_aligned_new_delete_args.vgtest \ sized_aligned_new_delete_args.stderr.exp_32 \ sized_aligned_new_delete_args.stderr.exp-gcc \ + sized_aligned_new_delete_args.stderr.exp-s390 \ sized_aligned_new_delete_misaligned.stderr.exp \ sized_aligned_new_delete_misaligned.vgtest \ deep-backtrace.vgtest deep-backtrace.stderr.exp \ diff --git a/memcheck/tests/sized_aligned_new_delete_args.stderr.exp-s390 b/memcheck/tests/sized_aligned_new_delete_args.stderr.exp-s390 new file mode 100644 index 0000000000..ea74f0f3d7 --- /dev/null +++ b/memcheck/tests/sized_aligned_new_delete_args.stderr.exp-s390 @@ -0,0 +1,96 @@ +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:16) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:16) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:16) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete(void*, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:17) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:19) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:19) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:19) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete[](void*, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:20) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:24) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:24) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:24) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new(unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:24) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete(void*, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:25) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:27) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:27) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:27) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:27) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete[](void*, std::align_val_t, std::nothrow_t const&) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:28) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: ...operator delete... (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:31) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete[](void*, unsigned long) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:34) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete(void*, unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:37) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete(void*, unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:37) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete[](void*, unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:40) + +Conditional jump or move depends on uninitialised value(s) + at 0x........: operator delete[](void*, unsigned long, std::align_val_t) (vg_replace_malloc.c:...) + by 0x........: main (sized_aligned_new_delete_args.cpp:40) + |