Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit d9eb5b7

Browse files
committed
SOCK_get_next_byte should not return garbage after error/EOF. Return
zero bytes instead.
1 parent 07faa2f commit d9eb5b7

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/interfaces/odbc/socket.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ SOCK_get_next_byte(SocketClass *self)
286286
{
287287
if (self->buffer_read_in >= self->buffer_filled_in)
288288
{
289-
/* there are no more bytes left in the buffer -> */
289+
/* there are no more bytes left in the buffer, so */
290290
/* reload the buffer */
291291

292292
self->buffer_read_in = 0;
@@ -296,17 +296,19 @@ SOCK_get_next_byte(SocketClass *self)
296296
mylog("read %d, global_socket_buffersize=%d\n",
297297
self->buffer_filled_in, globals.socket_buffersize);
298298

299-
if (self->buffer_filled_in == -1)
299+
if (self->buffer_filled_in < 0)
300300
{
301301
self->errornumber = SOCKET_READ_ERROR;
302302
self->errormsg = "Error while reading from the socket.";
303303
self->buffer_filled_in = 0;
304+
return 0;
304305
}
305306
if (self->buffer_filled_in == 0)
306307
{
307308
self->errornumber = SOCKET_CLOSED;
308309
self->errormsg = "Socket has been closed.";
309310
self->buffer_filled_in = 0;
311+
return 0;
310312
}
311313
}
312314
return self->buffer_in[self->buffer_read_in++];

0 commit comments

Comments
 (0)