free some more memory. check some more return values.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4021 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -54,8 +54,10 @@ krb5_kt_resolve(krb5_context context,
|
|||||||
if (k == NULL)
|
if (k == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
k->filename = strdup(name + 5);
|
k->filename = strdup(name + 5);
|
||||||
if (k->filename == NULL)
|
if (k->filename == NULL) {
|
||||||
|
free(k);
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
|
}
|
||||||
*id = k;
|
*id = k;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -248,9 +250,11 @@ krb5_kt_ret_data(krb5_storage *sp,
|
|||||||
return ret;
|
return ret;
|
||||||
data->length = size;
|
data->length = size;
|
||||||
data->data = malloc(size);
|
data->data = malloc(size);
|
||||||
|
if (data->data == NULL)
|
||||||
|
return ENOMEM;
|
||||||
ret = sp->fetch(sp, data->data, size);
|
ret = sp->fetch(sp, data->data, size);
|
||||||
if(ret != size)
|
if(ret != size)
|
||||||
return (ret < 0)? errno : KRB5_CC_END;
|
return (ret < 0)? errno : KRB5_KT_END;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,10 +268,12 @@ krb5_kt_ret_string(krb5_storage *sp,
|
|||||||
if(ret)
|
if(ret)
|
||||||
return ret;
|
return ret;
|
||||||
*data = malloc(size + 1);
|
*data = malloc(size + 1);
|
||||||
|
if (*data == NULL)
|
||||||
|
return ENOMEM;
|
||||||
ret = sp->fetch(sp, *data, size);
|
ret = sp->fetch(sp, *data, size);
|
||||||
(*data)[size] = '\0';
|
(*data)[size] = '\0';
|
||||||
if(ret != size)
|
if(ret != size)
|
||||||
return (ret < 0)? errno : KRB5_CC_END;
|
return (ret < 0)? errno : KRB5_KT_END;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +291,8 @@ krb5_kt_ret_principal(krb5_storage *sp,
|
|||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
|
|
||||||
ret = krb5_ret_int16(sp, &tmp);
|
ret = krb5_ret_int16(sp, &tmp);
|
||||||
if(ret) return ret;
|
if(ret)
|
||||||
|
return ret;
|
||||||
p->name.name_type = KRB5_NT_SRV_HST;
|
p->name.name_type = KRB5_NT_SRV_HST;
|
||||||
p->name.name_string.len = tmp;
|
p->name.name_string.len = tmp;
|
||||||
ret = krb5_kt_ret_string(sp, &p->realm);
|
ret = krb5_kt_ret_string(sp, &p->realm);
|
||||||
@@ -327,7 +334,7 @@ krb5_kt_store_data(krb5_storage *sp,
|
|||||||
if(ret != data.length){
|
if(ret != data.length){
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
return errno;
|
return errno;
|
||||||
return KRB5_CC_END;
|
return KRB5_KT_END;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -345,7 +352,7 @@ krb5_kt_store_string(krb5_storage *sp,
|
|||||||
if(ret != len){
|
if(ret != len){
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
return errno;
|
return errno;
|
||||||
return KRB5_CC_END;
|
return KRB5_KT_END;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -81,6 +81,8 @@ krb5_mk_error(krb5_context context,
|
|||||||
}
|
}
|
||||||
encode_KRB_ERROR(buf + sizeof(buf) - 1, sizeof(buf), &msg, &reply->length);
|
encode_KRB_ERROR(buf + sizeof(buf) - 1, sizeof(buf), &msg, &reply->length);
|
||||||
reply->data = malloc(reply->length);
|
reply->data = malloc(reply->length);
|
||||||
|
if (reply->data == NULL)
|
||||||
|
return ENOMEM;
|
||||||
memcpy(reply->data, buf + sizeof(buf) - reply->length, reply->length);
|
memcpy(reply->data, buf + sizeof(buf) - reply->length, reply->length);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -79,6 +79,8 @@ krb5_mk_rep(krb5_context context,
|
|||||||
free (ap.enc_part.cipher.data);
|
free (ap.enc_part.cipher.data);
|
||||||
outbuf->length = len;
|
outbuf->length = len;
|
||||||
outbuf->data = malloc(len);
|
outbuf->data = malloc(len);
|
||||||
|
if (outbuf->data == NULL)
|
||||||
|
return ENOMEM;
|
||||||
memcpy(outbuf->data, buf + sizeof(buf) - len, len);
|
memcpy(outbuf->data, buf + sizeof(buf) - len, len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user