OK, thanks, I understand now. I didn't realise it was zero-copy. The solution was to make the string a member of the XrdSsiResponder subclass so it stays in scope until after Finished() is called. std::string is convenient as I am using Google Protocol Buffers to pack and unpack the messages and the API provides a SerializeToString() method. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/537#issuecomment-313331360 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1