Re: [Libvir] [patch 4/5] iptables: maintain rules in memory even when not writing to disk

On Wed, Mar 21, 2007 at 12:48:01PM +0000, Mark McLoughlin wrote:
Re-factor things a little for the next patch so that we maintain the rules in memory even when we're not going to write them to disk.
[...]
if (!(r = (char **)realloc(rules->rules, sizeof(char *) * (rules->nrules+1)))) return ENOMEM;
Seems the rules tab is zeroed, but when you extend it you don't zeroe the new part of the array, but it may not give problem in practice (or a very hard one to track down ;-) Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/

On Wed, 2007-03-21 at 09:15 -0400, Daniel Veillard wrote:
On Wed, Mar 21, 2007 at 12:48:01PM +0000, Mark McLoughlin wrote:
Re-factor things a little for the next patch so that we maintain the rules in memory even when we're not going to write them to disk.
[...]
if (!(r = (char **)realloc(rules->rules, sizeof(char *) * (rules->nrules+1)))) return ENOMEM;
Seems the rules tab is zeroed, but when you extend it you don't zeroe the new part of the array, but it may not give problem in practice (or a very hard one to track down ;-)
Well, I do immediately initialise it. The logic is a little obscure, but it's a fairly familiar idiom to me - the nrules count isn't bumped until the new rule has been successfully appended. If the appending fails, we just leave things as they are rather than e.g. re-sizing the table back down again. Cheers, Mark.
participants (2)
-
Daniel Veillard
-
Mark McLoughlin