summaryrefslogtreecommitdiff
path: root/storage/archive
diff options
context:
space:
mode:
authorunknown <svoj@mysql.com/june.mysql.com>2007-12-12 17:16:59 +0400
committerunknown <svoj@mysql.com/june.mysql.com>2007-12-12 17:16:59 +0400
commitc9b46d56eb0304e6d9d58545ddb6a192eebbb795 (patch)
tree864731a67a567360e34455b02d690392c955419a /storage/archive
parent573353c2ebc69f91263a6b9bca37effead7f206e (diff)
downloadmariadb-git-c9b46d56eb0304e6d9d58545ddb6a192eebbb795.tar.gz
BUG#26978 - s->z_err not assigned a value?
azio didn't handle situation when my_read() returns error. Added handling of situation when my_read() returns error. No test case for this fix. storage/archive/azio.c: Added handling of situation when my_read() returns error.
Diffstat (limited to 'storage/archive')
-rw-r--r--storage/archive/azio.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/storage/archive/azio.c b/storage/archive/azio.c
index cada6c57918..59fbe2182ee 100644
--- a/storage/archive/azio.c
+++ b/storage/archive/azio.c
@@ -225,11 +225,17 @@ int get_byte(s)
if (s->stream.avail_in == 0)
{
errno = 0;
- s->stream.avail_in = my_read(s->file, (uchar *)s->inbuf, AZ_BUFSIZE_READ, MYF(0));
+ s->stream.avail_in= (uInt) my_read(s->file, (uchar *)s->inbuf,
+ AZ_BUFSIZE_READ, MYF(0));
if (s->stream.avail_in == 0)
{
s->z_eof = 1;
- /* if (ferror(s->file)) s->z_err = Z_ERRNO; */
+ return EOF;
+ }
+ else if (s->stream.avail_in == (uInt) -1)
+ {
+ s->z_eof= 1;
+ s->z_err= Z_ERRNO;
return EOF;
}
s->stream.next_in = s->inbuf;