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.