HCoop
/
hcoop
/
debian
/
courier-authlib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 0.63.0
[hcoop/debian/courier-authlib.git]
/
rfc822
/
rfc822_getaddrs.c
diff --git
a/rfc822/rfc822_getaddrs.c
b/rfc822/rfc822_getaddrs.c
index
ed5bc59
..
a17113f
100644
(file)
--- a/
rfc822/rfc822_getaddrs.c
+++ b/
rfc822/rfc822_getaddrs.c
@@
-1,10
+1,10
@@
/*
/*
-** Copyright 1998 -
199
9 Double Precision, Inc.
+** Copyright 1998 -
200
9 Double Precision, Inc.
** See COPYING for distribution information.
*/
/*
** See COPYING for distribution information.
*/
/*
-** $Id: rfc822_getaddrs.c,v 1.
5 1999/12/06 13:29:49
mrsam Exp $
+** $Id: rfc822_getaddrs.c,v 1.
6 2009/11/08 18:14:47
mrsam Exp $
*/
#include "rfc822.h"
#include <stdlib.h>
*/
#include "rfc822.h"
#include <stdlib.h>
@@
-32,15
+32,22
@@
static void saveaddrsep(const char *p, void *ptr)
char *rfc822_getaddrs(const struct rfc822a *rfc)
{
char *rfc822_getaddrs(const struct rfc822a *rfc)
{
-size_t addrbuflen=0;
-char *addrbuf, *ptr;
+ size_t addrbuflen=0;
+ char *addrbuf, *ptr;
+
+ if (rfc822_print(rfc, &cntlen, &cntlensep, &addrbuflen) < 0)
+ return NULL;
- rfc822_print(rfc, &cntlen, &cntlensep, &addrbuflen);
if (!(addrbuf=malloc(addrbuflen+1)))
return (0);
ptr=addrbuf;
if (!(addrbuf=malloc(addrbuflen+1)))
return (0);
ptr=addrbuf;
- rfc822_print(rfc, &saveaddr, &saveaddrsep, &ptr);
+ if (rfc822_print(rfc, &saveaddr, &saveaddrsep, &ptr) < 0)
+ {
+ free(addrbuf);
+ return NULL;
+ }
+
addrbuf[addrbuflen]=0;
return (addrbuf);
}
addrbuf[addrbuflen]=0;
return (addrbuf);
}
@@
-58,15
+65,23
@@
int c;
char *rfc822_getaddrs_wrap(const struct rfc822a *rfc, int w)
{
char *rfc822_getaddrs_wrap(const struct rfc822a *rfc, int w)
{
-size_t addrbuflen=0;
-char *addrbuf, *ptr, *start, *lastnl;
+ size_t addrbuflen=0;
+ char *addrbuf, *ptr, *start, *lastnl;
+
+ if (rfc822_print(rfc, &cntlen, &cntlensep, &addrbuflen) < 0)
+ return NULL;
- rfc822_print(rfc, &cntlen, &cntlensep, &addrbuflen);
if (!(addrbuf=malloc(addrbuflen+1)))
return (0);
ptr=addrbuf;
if (!(addrbuf=malloc(addrbuflen+1)))
return (0);
ptr=addrbuf;
- rfc822_print(rfc, &saveaddr, &saveaddrsep_wrap, &ptr);
+
+ if (rfc822_print(rfc, &saveaddr, &saveaddrsep_wrap, &ptr) < 0)
+ {
+ free(addrbuf);
+ return NULL;
+ }
+
addrbuf[addrbuflen]=0;
for (lastnl=0, start=ptr=addrbuf; *ptr; )
addrbuf[addrbuflen]=0;
for (lastnl=0, start=ptr=addrbuf; *ptr; )