diff options
author | unknown <svoj@mysql.com/june.mysql.com> | 2007-12-12 17:16:59 +0400 |
---|---|---|
committer | unknown <svoj@mysql.com/june.mysql.com> | 2007-12-12 17:16:59 +0400 |
commit | c9b46d56eb0304e6d9d58545ddb6a192eebbb795 (patch) | |
tree | 864731a67a567360e34455b02d690392c955419a /storage/archive | |
parent | 573353c2ebc69f91263a6b9bca37effead7f206e (diff) | |
download | mariadb-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.c | 10 |
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; |