[pkg-x2go-devel] Bug#766299: nxproxy: BIG-REQUESTS patch builds but fails at runtime

paul.szabo at sydney.edu.au paul.szabo at sydney.edu.au
Sun Oct 26 00:54:54 UTC 2014


Dear Mike,

> I test your patch and it results in several nxproxy crashes every 1-2
> minutes. The output of the session.log file you can find below.
> ...
> Error: Can't add a message of 3306686292 bytes to write buffer.
> Error: Assuming error handling data in context [B].

That comes from WriteBuffer::addMessage(), line 192 of WriteBuffer.cpp;
the reported length of 3GB is ridiculous.

This error does not seem to be directly caused by my patches, because
the "sanity check" lines

      if (dataLength < 8 || dataLength > 1024*1024*1024)
      {
        #ifdef WARNING
        *logofs << "BIG-REQUESTS with unacceptable dataLength="
                << dataLength << ", now set to 8.\n" << logofs_flush;
        #endif
        dataLength = 8;
      }

in my patched ClientReadBuffer.cpp did not "fire". (You do have WARNING
on, right?)

I would suggest to scrutinize your data (X11 protocol input) stream.
Maybe I could help, if I could reproduce your crashes. I do not use
nxagent (do not have it now, do not intend to use it). Is there a way
to elicit your error, by having some (common) X client display to an
nxproxy-ied server?

Maybe someone should add sanity checks to ClientChannel.cpp, there are
many places where data lengths and similar are "blindly" accepted from
the input stream... as I had pointed out.

(This is so cute, so back-to-front: the maintainer asking me for help in
fixing his crash. No matter, I also want to make nxproxy useable, I am
in the process of trying to use it myself.)

Cheers, Paul

Paul Szabo   psz at maths.usyd.edu.au   http://www.maths.usyd.edu.au/u/psz/
School of Mathematics and Statistics   University of Sydney    Australia



More information about the Pkg-x2go-devel mailing list