diff options
author | Andrew Bartlett <abartlet@samba.org> | 2009-08-05 11:25:50 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2009-08-05 12:18:17 +1000 |
commit | cd1d7f4be7d31388ab79c797acaf6d7730113112 (patch) | |
tree | 3d25e28089d1cffa5d7dadca529e29b936681607 /source4/heimdal/lib/roken | |
parent | 8bba340e65e84ee09a7da4d97bc7838d3eefbb15 (diff) | |
download | samba-cd1d7f4be7d31388ab79c797acaf6d7730113112.tar.gz samba-cd1d7f4be7d31388ab79c797acaf6d7730113112.tar.bz2 samba-cd1d7f4be7d31388ab79c797acaf6d7730113112.zip |
s4:heimdal: import lorikeet-heimdal-200908050050 (commit 8714779fa7376fd9f7761587639e68b48afc8c9c)
This also adds a new hdb-glue.c file, to cope with Heimdal's
uncondtional enabling of SQLITE.
(Very reasonable, but not required for Samba4's use).
Andrew Bartlett
Diffstat (limited to 'source4/heimdal/lib/roken')
-rw-r--r-- | source4/heimdal/lib/roken/base64.c | 5 | ||||
-rw-r--r-- | source4/heimdal/lib/roken/strpool.c | 5 | ||||
-rw-r--r-- | source4/heimdal/lib/roken/vis.hin | 9 |
3 files changed, 13 insertions, 6 deletions
diff --git a/source4/heimdal/lib/roken/base64.c b/source4/heimdal/lib/roken/base64.c index 5e720eb6d4..bc74391b56 100644 --- a/source4/heimdal/lib/roken/base64.c +++ b/source4/heimdal/lib/roken/base64.c @@ -58,6 +58,11 @@ base64_encode(const void *data, int size, char **str) int c; const unsigned char *q; + if (size > INT_MAX/4 || size < 0) { + *str = NULL; + return -1; + } + p = s = (char *) malloc(size * 4 / 3 + 4); if (p == NULL) { *str = NULL; diff --git a/source4/heimdal/lib/roken/strpool.c b/source4/heimdal/lib/roken/strpool.c index dc56892144..642d335dec 100644 --- a/source4/heimdal/lib/roken/strpool.c +++ b/source4/heimdal/lib/roken/strpool.c @@ -100,7 +100,10 @@ rk_strpoolprintf(struct rk_strpool *p, const char *fmt, ...) char * ROKEN_LIB_FUNCTION rk_strpoolcollect(struct rk_strpool *p) { - char *str = p->str; + char *str; + if (p == NULL) + return strdup(""); + str = p->str; p->str = NULL; free(p); return str; diff --git a/source4/heimdal/lib/roken/vis.hin b/source4/heimdal/lib/roken/vis.hin index 06a250c6d8..737b2eb8f6 100644 --- a/source4/heimdal/lib/roken/vis.hin +++ b/source4/heimdal/lib/roken/vis.hin @@ -44,6 +44,8 @@ #include <sys/types.h> +#include <roken.h> + /* * to select alternate encoding format */ @@ -80,11 +82,8 @@ */ #define UNVIS_END 1 /* no more characters */ -#ifdef HAVE_SYS_CDEFS_H -#include <sys/cdefs.h> -#endif +ROKEN_CPP_START -__BEGIN_DECLS char * ROKEN_LIB_FUNCTION rk_vis(char *, int, int, int); char * ROKEN_LIB_FUNCTION @@ -103,7 +102,7 @@ int ROKEN_LIB_FUNCTION rk_strunvisx(char *, const char *, int); int ROKEN_LIB_FUNCTION rk_unvis(char *, int, int *, int); -__END_DECLS +ROKEN_CPP_END #undef vis #define vis(a,b,c,d) rk_vis(a,b,c,d) |