summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzuul <zuul@gerrit.asterisk.org>2017-03-08 10:05:19 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-03-08 10:05:19 -0600
commitff0569740a4f8c6135344131a11cc6ff49ea5fcf (patch)
tree1887aaeb7995e7ec7b44ad3736dbd2f40697804e
parent9cd1a754a9898dce9682d8a3ee3de1ed0537d0b3 (diff)
parent5d0371d7437440482f8d8e42f9fde7288a53159e (diff)
Merge "res_http_websocket: Fix faulty read logic."
-rw-r--r--res/res_http_websocket.c10
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));