summaryrefslogtreecommitdiff
path: root/indra/llmessage/llfiltersd2xmlrpc.cpp
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2008-05-07 21:10:39 +0000
committerJosh Bell <josh@lindenlab.com>2008-05-07 21:10:39 +0000
commita75b85112ffa4b7140561083c2e5de05fb510805 (patch)
tree0a4f041081228acee5a75ba9a002e29be464761a /indra/llmessage/llfiltersd2xmlrpc.cpp
parentd273ba2ce2707c6a2fe45c08fdc2524aae19ad00 (diff)
svn merge -r 86558:86977 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-21-Server
* QAR-567 Deploy user-start-migration-again login.cgi and friends to agni * DEV-14807 dir-places and dir-classifieds web-ds calls are failing * DEV-9962 SVC-1428: Malformed llInstantMessage() gets sent to email, stuck in queue, and spammed to email at every login * DEV-12696 Limit the number of group_notices in a group NOTE: merge involved renames to the following to have "nq" extension * indra/web/dataservice/sql/sequence/cart_items/update (actual change) * indra/web/dataservice/sql/indra/select-dir-places-parcel (which was a no-op merge) The magic words are: dataserver-is-deprecated
Diffstat (limited to 'indra/llmessage/llfiltersd2xmlrpc.cpp')
-rw-r--r--indra/llmessage/llfiltersd2xmlrpc.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/indra/llmessage/llfiltersd2xmlrpc.cpp b/indra/llmessage/llfiltersd2xmlrpc.cpp
index 88f7b1cb68..07a3655697 100644
--- a/indra/llmessage/llfiltersd2xmlrpc.cpp
+++ b/indra/llmessage/llfiltersd2xmlrpc.cpp
@@ -695,6 +695,24 @@ LLIOPipe::EStatus LLFilterXMLRPCRequest2LLSD::process_impl(
buffer->readAfter(channels.in(), NULL, (U8*)buf, bytes);
//lldebugs << "xmlrpc request: " << buf << llendl;
+
+ // Check the value in the buffer. XMLRPC_REQUEST_FromXML will report a error code 4 if
+ // values that are less than 0x20 are passed to it, except
+ // 0x09: Horizontal tab; 0x0a: New Line; 0x0d: Carriage
+ U8* cur_pBuf = (U8*)buf;
+ U8 cur_char;
+ for (S32 i=0; i<bytes; i++)
+ {
+ cur_char = *cur_pBuf;
+ if ( cur_char < 0x20
+ && 0x09 != cur_char
+ && 0x0a != cur_char
+ && 0x0d != cur_char )
+ {
+ *cur_pBuf = '?';
+ }
+ ++cur_pBuf;
+ }
PUMP_DEBUG;
XMLRPC_REQUEST request = XMLRPC_REQUEST_FromXML(