|
From: <sv...@va...> - 2006-11-28 00:15:43
|
Author: sewardj
Date: 2006-11-28 00:15:35 +0000 (Tue, 28 Nov 2006)
New Revision: 6374
Log:
Make it possible to suppress, and auto-generate suppressions for,
"User" errors; that is, errors resulting from client requests (check
memory range is addressible / defined).
Modified:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_main.c 2006-11-26 22:49:58 UTC (rev 6373)
+++ trunk/memcheck/mc_main.c 2006-11-28 00:15:35 UTC (rev 6374)
@@ -2648,6 +2648,7 @@
typedef=20
enum {=20
ParamSupp, // Bad syscall params
+ UserSupp, // Errors arising from client-request checks
CoreMemSupp, // Memory errors in core (pthread ops, signal handl=
ing)
=20
// Use of invalid values of given size (MemCheck only)
@@ -3357,6 +3358,7 @@
SuppKind skind;
=20
if (VG_STREQ(name, "Param")) skind =3D ParamSupp;
+ else if (VG_STREQ(name, "User")) skind =3D UserSupp;
else if (VG_STREQ(name, "CoreMem")) skind =3D CoreMemSupp;
else if (VG_STREQ(name, "Addr1")) skind =3D Addr1Supp;
else if (VG_STREQ(name, "Addr2")) skind =3D Addr2Supp;
@@ -3406,6 +3408,9 @@
&& VG_STREQ(VG_(get_error_string)(err),=20
VG_(get_supp_string)(su)));
=20
+ case UserSupp:
+ return (ekind =3D=3D UserErr);
+
case CoreMemSupp:
return (ekind =3D=3D CoreMemErr
&& VG_STREQ(VG_(get_error_string)(err),
@@ -3454,7 +3459,7 @@
Char* s;
switch (VG_(get_error_kind)(err)) {
case ParamErr: return "Param";
- case UserErr: return NULL; /* Can't suppress User errors =
*/
+ case UserErr: return "User";
case FreeMismatchErr: return "Free";
case IllegalMempoolErr: return "Mempool";
case FreeErr: return "Free";
|