From: Julien Chaffraix Date: Fri, 10 Sep 2010 07:22:40 +0000 (-0700) Subject: security.c: buffer_read various fixes. X-Git-Tag: curl-7_21_2~65 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fbb38de415b7bb7d743e53a7b4b887ffb12b3e5b;p=curl security.c: buffer_read various fixes. Tighten the type of the |data| parameter to avoid a cast. Also made it const as we should not modify it. Added a DEBUGASSERT on the size to be written while changing it. --- diff --git a/lib/security.c b/lib/security.c index e9f8ea02f..c79128abd 100644 --- a/lib/security.c +++ b/lib/security.c @@ -180,11 +180,13 @@ static CURLcode read_data(struct connectdata *conn, } static size_t -buffer_read(struct krb4buffer *buf, void *data, size_t len) +buffer_read(struct krb4buffer *buf, const char *data, size_t len) { - if(buf->size - buf->index < len) - len = buf->size - buf->index; - memcpy(data, (char*)buf->data + buf->index, len); + size_t buf_capacity = buf->size - buf->index; + DEBUGASSERT(buf->size > buf->index); + if(buf_capacity < len) + len = buf_capacity; + memcpy(buf, data, len); buf->index += len; return len; }