diff --git a/lib/gssapi/mech/context.c b/lib/gssapi/mech/context.c index 96e5edc32..5ea0ac466 100644 --- a/lib/gssapi/mech/context.c +++ b/lib/gssapi/mech/context.c @@ -85,17 +85,19 @@ _gss_mg_get_error(const gss_OID mech, OM_uint32 type, case GSS_C_GSS_CODE: { if (value != mg->maj_stat || mg->maj_error.length == 0) break; - string->value = malloc(mg->maj_error.length); + string->value = malloc(mg->maj_error.length + 1); string->length = mg->maj_error.length; memcpy(string->value, mg->maj_error.value, mg->maj_error.length); + ((char *) string->value)[string->length] = '\0'; return GSS_S_COMPLETE; } case GSS_C_MECH_CODE: { if (value != mg->min_stat || mg->min_error.length == 0) break; - string->value = malloc(mg->min_error.length); + string->value = malloc(mg->min_error.length + 1); string->length = mg->min_error.length; memcpy(string->value, mg->min_error.value, mg->min_error.length); + ((char *) string->value)[string->length] = '\0'; return GSS_S_COMPLETE; } }