diff options
author | zuul <zuul@gerrit.asterisk.org> | 2017-03-08 10:05:19 -0600 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-03-08 10:05:19 -0600 |
commit | ff0569740a4f8c6135344131a11cc6ff49ea5fcf (patch) | |
tree | 1887aaeb7995e7ec7b44ad3736dbd2f40697804e /res | |
parent | 9cd1a754a9898dce9682d8a3ee3de1ed0537d0b3 (diff) | |
parent | 5d0371d7437440482f8d8e42f9fde7288a53159e (diff) |
Merge "res_http_websocket: Fix faulty read logic."
Diffstat (limited to 'res')
-rw-r--r-- | res/res_http_websocket.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/res/res_http_websocket.c b/res/res_http_websocket.c index 84138234e..799eb848f 100644 --- a/res/res_http_websocket.c +++ b/res/res_http_websocket.c @@ -529,10 +529,12 @@ static inline int ws_safe_read(struct ast_websocket *session, char *buf, int len return -1; } } - xlen = xlen - rlen; - rbuf = rbuf + rlen; - if (!xlen) { - break; + if (rlen > 0) { + xlen = xlen - rlen; + rbuf = rbuf + rlen; + if (!xlen) { + break; + } } if (ast_wait_for_input(ast_iostream_get_fd(session->stream), 1000) < 0) { ast_log(LOG_ERROR, "ast_wait_for_input returned err: %s\n", strerror(errno)); |