|
From: Eric L. <eri...@ab...> - 2005-06-17 23:12:25
|
Here is an example of code and below is represenation of=20
valgrind output which seem buggy.
char *protocol_names[256];
void InitProtoNames()
{
struct protoent *pt;
unsigned char *tmp;
int i;
u_char protoname[11];
for(i =3D 0; i < 256; i++)
{
pt =3D getprotobynumber(i);
if(pt)
{
protocol_names[i] =3D strdup(pt->p_name);
tmp =3D protocol_names[i];
for(tmp =3D protocol_names[i]; *tmp !=3D 0; tmp++)
*tmp =3D (unsigned char) toupper(*tmp);
}
else
{
snprintf(protoname, 10, "PROTO%03d", i);
protocol_names[i] =3D strdup(protoname);
}
}
}
void DelProtoNames()
{
int i;
int len =3D 0;
for(i =3D 0; i < 256; i++)
{
if(protocol_names[i])
{
len =3D strlen(protocol_names[i]);
bzero(protocol_names[i],len);
free(protocol_names[i]);
protocol_names[i]=3DNULL;
}
}
}
Still valgrind report the following:
=3D=3D6285=3D=3D 8 bytes in 1 blocks are still reachable in loss record =
1 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1BA520AD: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA53942: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5743E: getprotobynumber (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x804BF38: InitProtoNames (util.c:286)
=3D=3D6285=3D=3D by 0x8049A96: main (main.c:99)
=3D=3D6285=3D=3D
=3D=3D6285=3D=3D
=3D=3D6285=3D=3D 8 bytes in 1 blocks are still reachable in loss record =
2 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1BA522CE: nss_parse_file (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51DD3: __nss_database_lookup (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5391E: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5743E: getprotobynumber (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x804BF38: InitProtoNames (util.c:286)
=3D=3D6285=3D=3D by 0x8049A96: main (main.c:99)
=3D=3D6285=3D=3D
=3D=3D6285=3D=3D 16 bytes in 1 blocks are still reachable in loss record =
5 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1BA3FBF3: tsearch (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5206C: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA53942: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5743E: getprotobynumber (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x804BF38: InitProtoNames (util.c:286)
=3D=3D6285=3D=3D by 0x8049A96: main (main.c:99)
=3D=3D6285=3D=3D 23 bytes in 1 blocks are still reachable in loss record =
6 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1B8EC044: _dl_new_object (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8E91EB: _dl_map_object_from_fd (in =
/lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8E7E1B: _dl_map_object (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA74513: dl_open_worker (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7424F: _dl_open (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7612E: do_dlopen (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA75FA1: __libc_dlopen_mode (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA52214: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D 23 bytes in 1 blocks are still reachable in loss record =
7 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1B8E81B8: _dl_map_object (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA74513: dl_open_worker (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7424F: _dl_open (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7612E: do_dlopen (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA75FA1: __libc_dlopen_mode (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA52214: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA53942: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D 28 bytes in 1 blocks are still reachable in loss record =
8 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1B8ED6E5: _dl_map_object_deps (in =
/lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7456C: dl_open_worker (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7424F: _dl_open (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7612E: do_dlopen (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA75FA1: __libc_dlopen_mode (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA52214: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA53942: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D 144 bytes in 1 blocks are still reachable in loss =
record 10 of
16
=3D=3D6285=3D=3D at 0x1B902C19: calloc (vg_replace_malloc.c:175)
=3D=3D6285=3D=3D by 0x1B8EF85C: _dl_check_map_versions (in =
/lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA74974: dl_open_worker (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7424F: _dl_open (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA7612E: do_dlopen (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1B8EE785: _dl_catch_error (in /lib/ld-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA75FA1: __libc_dlopen_mode (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA52214: __nss_lookup_function (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51E1E: __nss_lookup (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA53942: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D 209 bytes in 13 blocks are still reachable in loss =
record 12 of
16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1BA52B6C: nss_getline (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA52379: nss_parse_file (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA51DD3: __nss_database_lookup (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5391E: __nss_protocols_lookup (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA575ED: getprotobynumber_r@@GLIBC_2.1.2 (in
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA5743E: getprotobynumber (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x804BF38: InitProtoNames (util.c:286)
=3D=3D6285=3D=3D by 0x8049A96: main (main.c:99)
Other stuff from libc seem to be reported as reachable block (static
allocated lib data):
=3D=3D6285=3D=3D 48 bytes in 4 blocks are still reachable in loss record =
9 of 16
=3D=3D6285=3D=3D at 0x1B9022E8: malloc (vg_replace_malloc.c:130)
=3D=3D6285=3D=3D by 0x1BA01A0B: __tzstring (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA03365: __tzfile_read (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA01BA3: tzset_internal (in =
/lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA02527: __tz_convert (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA00DBE: localtime_r (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA3DD93: vsyslog (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x1BA3DCAE: syslog (in /lib/libc-2.3.4.so)
=3D=3D6285=3D=3D by 0x804BB2C: LogMessage (util.c:76)
=3D=3D6285=3D=3D by 0x8049ABB: main (main.c:104)
-elz
|
|
From: Nicholas N. <nj...@cs...> - 2005-06-18 01:11:26
|
On Fri, 17 Jun 2005, Eric Lauzon wrote: > Here is an example of code and below is represenation of > valgrind output which seem buggy. Why do you think it is buggy? N |
|
From: Scott L. <sc...@sw...> - 2005-06-20 16:06:13
|
Eric Lauzon wrote: > Here is an example of code and below is represenation of > valgrind output which seem buggy. I assume from your sig that you are a programmer for "AboveSecurity" consulting services. Am I to assume that all programmers at this company are of a similar skill level, e.g. unable to distinguish between an application and its linked libraries, and using archaic functions such as bzero()? -- Scott Long <sc...@sw...> Software Engineer SwiftView, Inc. (971) 223-2639 |