Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jun 2009 09:47:22 GMT
From:      brian@FreeBSD.org
To:        henning.petersen@t-online.de, brian@FreeBSD.org, freebsd-bugs@FreeBSD.org
Subject:   Re: bin/135494: Use of sizeof in dhclinet.c.
Message-ID:  <200906120947.n5C9lMlQ065650@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
Synopsis: Use of sizeof in dhclinet.c.

State-Changed-From-To: open->closed
State-Changed-By: brian
State-Changed-When: Fri Jun 12 09:43:16 UTC 2009
State-Changed-Why: 
The suggested patch is not correct.  The options variable
is an array of 256 tree_cache pointers and the code wants to
set all pointers to NULL.  The proposed change would just
set the first pointer to NULL.

To demonstrate:

#include <stdio.h>
#include <string.h>

struct tree_cache {
	int x;
	int y;
};

int
main()
{
	struct tree_cache *options[256];
	int f;

	for (f = 0; f < 256; f++)
		options[f] = (struct tree_cache *)123;

	printf("Zeroing %u bytes\n", sizeof options);
	memset(options, 0, sizeof options);
	for (f = 0; f < 256; f++)
		if (options[f] != NULL)
			printf("Oops, %d is wrong\n", f);

	return 0;
}


http://www.freebsd.org/cgi/query-pr.cgi?pr=135494



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906120947.n5C9lMlQ065650>