From 4f8ba5ad6ac9b7153b0e13654e59f47e67b3f608 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 13 Nov 2009 10:51:14 +1100 Subject: s4:heimdal: import lorikeet-heimdal-200911122202 (commit 9291fd2d101f3eecec550178634faa94ead3e9a1) --- source4/heimdal/lib/wind/normalize.c | 13 ++++++++++--- source4/heimdal/lib/wind/stringprep.c | 8 +++++++- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'source4/heimdal/lib/wind') diff --git a/source4/heimdal/lib/wind/normalize.c b/source4/heimdal/lib/wind/normalize.c index 4c70a52932..102c577e66 100644 --- a/source4/heimdal/lib/wind/normalize.c +++ b/source4/heimdal/lib/wind/normalize.c @@ -39,6 +39,9 @@ #include #include #include +#include + +#include "roken.h" #include "normalize_table.h" @@ -173,7 +176,7 @@ cc_cmp(const void *a, const void *b) static void canonical_reorder(uint32_t *tmp, size_t tmp_len) { - unsigned i; + size_t i; for (i = 0; i < tmp_len; ++i) { int cc = _wind_combining_class(tmp[i]); @@ -183,8 +186,7 @@ canonical_reorder(uint32_t *tmp, size_t tmp_len) j < tmp_len && _wind_combining_class(tmp[j]); ++j) ; - qsort(&tmp[i], j - i, sizeof(unsigned), - cc_cmp); + qsort(&tmp[i], j - i, sizeof(tmp[0]), cc_cmp); i = j; } } @@ -280,6 +282,11 @@ _wind_stringprep_normalize(const uint32_t *in, size_t in_len, uint32_t *tmp; int ret; + if (in_len == 0) { + *out_len = 0; + return 0; + } + tmp_len = in_len * 4; if (tmp_len < MAX_LENGTH_CANON) tmp_len = MAX_LENGTH_CANON; diff --git a/source4/heimdal/lib/wind/stringprep.c b/source4/heimdal/lib/wind/stringprep.c index a991f20cfb..ec4657665e 100644 --- a/source4/heimdal/lib/wind/stringprep.c +++ b/source4/heimdal/lib/wind/stringprep.c @@ -58,10 +58,16 @@ wind_stringprep(const uint32_t *in, size_t in_len, wind_profile_flags flags) { size_t tmp_len = in_len * 3; - uint32_t *tmp = malloc(tmp_len * sizeof(uint32_t)); + uint32_t *tmp; int ret; size_t olen; + if (in_len == 0) { + *out_len = 0; + return 0; + } + + tmp = malloc(tmp_len * sizeof(uint32_t)); if (tmp == NULL) return ENOMEM; -- cgit