diff --git a/lib/krb5/store.c b/lib/krb5/store.c index 62a94b86a..192490126 100644 --- a/lib/krb5/store.c +++ b/lib/krb5/store.c @@ -137,10 +137,13 @@ krb5_ret_data(krb5_storage *sp, if(ret) return ret; data->length = size; - data->data = malloc(size); - ret = sp->fetch(sp, data->data, size); - if(ret != size) - return (ret < 0)? errno : KRB5_CC_END; + if (size) { + data->data = malloc(size); + ret = sp->fetch(sp, data->data, size); + if(ret != size) + return (ret < 0)? errno : KRB5_CC_END; + } else + data->data = NULL; return 0; }