提交 32884a7e 编写于 作者: J Jim Meyering

virFileReadLimFD: diagnose maxlen <= 0, rather than passing it on...

to saferead_lim, which interprets it as a size_t.
* src/util/util.c (virFileReadLimFD): Do not malfunction when
maxlen < -1.  Return -1,EINVAL in that case.  Handle maxlen==0
in the same manner.
上级 ba918ac1
...@@ -1030,10 +1030,17 @@ saferead_lim (int fd, size_t max_len, size_t *length) ...@@ -1030,10 +1030,17 @@ saferead_lim (int fd, size_t max_len, size_t *length)
/* A wrapper around saferead_lim that maps a failure due to /* A wrapper around saferead_lim that maps a failure due to
exceeding the maximum size limitation to EOVERFLOW. */ exceeding the maximum size limitation to EOVERFLOW. */
int virFileReadLimFD(int fd, int maxlen, char **buf) int
virFileReadLimFD(int fd, int maxlen, char **buf)
{ {
size_t len; size_t len;
char *s = saferead_lim (fd, maxlen+1, &len); char *s;
if (maxlen <= 0) {
errno = EINVAL;
return -1;
}
s = saferead_lim (fd, maxlen+1, &len);
if (s == NULL) if (s == NULL)
return -1; return -1;
if (len > maxlen || (int)len != len) { if (len > maxlen || (int)len != len) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册