From: Guus Sliepen Date: Thu, 11 Oct 2012 20:47:13 +0000 (+0200) Subject: Strip newline from incoming SPTPS requests. X-Git-Tag: release-1.1pre3~10 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=94ec8d34db0ddef14b5446975663e5ff37e27b45;p=oweals%2Ftinc.git Strip newline from incoming SPTPS requests. Most of the code doesn't care whether requests are terminated with a newline or not, except that when requests are forwarded, it is assumed they do not have one and a newline is added. When a node using SPTPS receives a request from another SPTPS-using node, and forwards it to a non-SPTPS-using node, this will result in two consecutive newlines, which the latter node will see as an empty, and thus invalid, request. --- diff --git a/src/meta.c b/src/meta.c index dfb8392..8786d7f 100644 --- a/src/meta.c +++ b/src/meta.c @@ -109,6 +109,11 @@ bool receive_meta_sptps(void *handle, uint8_t type, const char *data, uint16_t l return true; } + /* Change newline to null byte, just like non-SPTPS requests */ + + if(data[length - 1] == '\n') + ((char *)data)[length - 1] = 0; + /* Otherwise we are waiting for a request */ return receive_request(c, data);