From: ericm Date: Fri, 24 Nov 2006 18:15:11 +0000 (+0000) Subject: branch: b_new_cmd X-Git-Tag: v1_8_0_110~486^2~75 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ff7ed1e5e7a91253f940a5a35cfce9540952301c;p=fs%2Flustre-release.git branch: b_new_cmd the part missing from last commit: don't taint passed-in obj until we know everything is fine. --- diff --git a/lustre/ptlrpc/gss/gss_krb5_mech.c b/lustre/ptlrpc/gss/gss_krb5_mech.c index 0256796..de969ff 100644 --- a/lustre/ptlrpc/gss/gss_krb5_mech.c +++ b/lustre/ptlrpc/gss/gss_krb5_mech.c @@ -207,20 +207,22 @@ static int get_rawobj(char **ptr, const char *end, rawobj_t *res) { char *p, *q; + __u32 len; p = *ptr; - if (get_bytes(&p, end, &res->len, sizeof(res->len))) + if (get_bytes(&p, end, &len, sizeof(len))) return -1; - q = p + res->len; + q = p + len; if (q > end || q < p) return -1; - OBD_ALLOC(res->data, res->len); + OBD_ALLOC(res->data, len); if (!res->data) return -1; - memcpy(res->data, p, res->len); + res->len = len; + memcpy(res->data, p, len); *ptr = q; return 0; }