Properly read data from stream in pki --pkcs7

This commit is contained in:
Tobias Brunner 2013-01-24 18:43:10 +01:00
parent 27a814b527
commit 4cd3fb788d
1 changed files with 9 additions and 6 deletions

View File

@ -31,13 +31,16 @@ static chunk_t read_from_stream(FILE *stream)
while (TRUE)
{
len = fread(buf + total, 1, sizeof(buf) - total, stream);
if (len < 0)
if (len < (sizeof(buf) - total))
{
return chunk_empty;
}
if (len == 0)
{
return chunk_clone(chunk_create(buf, total));
if (ferror(stream))
{
return chunk_empty;
}
if (feof(stream))
{
return chunk_clone(chunk_create(buf, total + len));
}
}
total += len;
if (total == sizeof(buf))