Make sure error and status replies emitted by Lua scripts can never have more than a newline, otherwise it is a protocol violation and clients will desync.

This commit is contained in:
antirez
2011-05-24 19:43:11 +02:00
parent 449286a588
commit 3bb818df40
4 changed files with 39 additions and 4 deletions

View File

@ -553,6 +553,29 @@ void sdssplitargs_free(sds *argv, int argc) {
zfree(argv);
}
/* Modify the string substituting all the occurrences of the set of
* characters specifed in the 'from' string to the corresponding character
* in the 'to' array.
*
* For instance: sdsmapchars(mystring, "ho", "01", 2)
* will have the effect of turning the string "hello" into "0ell1".
*
* The function returns the sds string pointer, that is always the same
* as the input pointer since no resize is needed. */
sds sdsmapchars(sds s, char *from, char *to, size_t setlen) {
size_t j, i, l = sdslen(s);
for (j = 0; j < l; j++) {
for (i = 0; i < setlen; i++) {
if (s[j] == from[i]) {
s[j] = to[i];
break;
}
}
}
return s;
}
#ifdef SDS_TEST_MAIN
#include <stdio.h>
#include "testhelp.h"