summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-02-02 18:29:24 -0500
committerSimo Sorce <simo@redhat.com>2012-02-03 22:32:24 -0500
commitfad3b1058ff1abdcfb0a51de35e8e6f408ba68a9 (patch)
treef98ffe2e985e6e1df210e1ed8f62bbcf1456ba09
parent9136e031772f472270a3d37732daf1c21e99e54c (diff)
downloadgss-proxy-fad3b1058ff1abdcfb0a51de35e8e6f408ba68a9.tar.gz
gss-proxy-fad3b1058ff1abdcfb0a51de35e8e6f408ba68a9.tar.xz
gss-proxy-fad3b1058ff1abdcfb0a51de35e8e6f408ba68a9.zip
Allow conversion of empty strings.
-rw-r--r--proxy/src/gp_conv.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c
index 88c3818..4f06987 100644
--- a/proxy/src/gp_conv.c
+++ b/proxy/src/gp_conv.c
@@ -45,6 +45,12 @@ void *gp_memdup(void *in, size_t len)
int gp_conv_octet_string(size_t length, void *value, octet_string *out)
{
+ if (length == 0) {
+ out->octet_string_val = NULL;
+ out->octet_string_len = 0;
+ return 0;
+ }
+
out->octet_string_val = gp_memdup(value, length);
if (!out->octet_string_val) {
return ENOMEM;
@@ -120,6 +126,11 @@ int gp_conv_gssx_to_buffer_alloc(gssx_buffer *in, gss_buffer_t *out)
{
gss_buffer_desc *o;
+ if (in->octet_string_len == 0) {
+ *out = GSS_C_NO_BUFFER;
+ return 0;
+ }
+
o = malloc(sizeof(gss_buffer_desc));
if (!o) {
return ENOMEM;