INN commit: trunk (backends/actsync.c doc/pod/actsync.pod)
Julien ÉLIE
julien at trigofacile.com
Fri Aug 10 08:15:20 UTC 2007
En réponse à Russ Allbery :
> When we're limiting lengths, we use %.<length>s instead.
Thanks for the piece of advice.
> The code pattern that we're replacing already does allocate memory, so the
> frees already needed to be there.
Hm, there are not always there.
If for instance I look at frontends/feedone.c, I read:
int
main(ac, av) {
char *mesgid = NULL;
mesgid[0] = '\0';
[...]
case 'm':
if...
mesgid = optarg;
else...
mesgid = concat("<", optarg, ">", (char *) 0);
break;
case 'r': /* Random Message-ID */
xasprintf(&mesgid, "<%ld@%ld>", (long) getpid(),
(long) time(NULL));
break;
[...]
if (mesgid == NULL) {
[...]
mesgid = xstrdup(p);
}
/* Does the server want this article? */
fprintf(ToServer, "ihave %s\r\n", mesgid);
/* Send the file over. */
fprintf(ToServer, "%s %s\r\n", MESGIDHDR, mesgid);
[...]
}
And that's all.
Normally, mesgid will be automatically freed at the end of the function
but even so, should we explicitly call free()?
--
Julien ÉLIE
« -- Vous croyez qu'on s'est fait rouler, chef ?
-- P'têt ben qu'oui, p'têt ben qu'non... » (Astérix)
More information about the inn-workers
mailing list