• Erkki Seppälä's avatar
    record: avoid crash when calling RecordFlushReplyBuffer recursively · c8a4e1e7
    Erkki Seppälä authored
    Backported from X.Org:
    
    commit 0801afbd7c2c644c672b37f8463f1a0cbadebd2e
    Author: Erkki Seppälä <erkki.seppala@vincit.fi>
    Date:   Thu Feb 10 15:35:14 2011 +0200
    
        record: avoid crash when calling RecordFlushReplyBuffer recursively
    
        RecordFlushReplyBuffer can call itself recursively through
        WriteClient->CallCallbacks->_CallCallbacks->RecordFlushAllContexts
        when the recording client's buffer cannot be completely emptied in one
        WriteClient. When a such a recursion occurs, it will not be broken out
        of which results in segmentation fault when the stack is exhausted.
    
        This patch adds a counter (a flag, really) that guards against this
        situation, to break out of the recursion.
    
        One alternative to this change would be to change _CallCallbacks to
        check the corresponding counter before the callback loop, but that
        might affect existing behavior, which may be relied upon.
    Reviewed-by: 's avatarRami Ylimäki <rami.ylimaki@vincit.fi>
    Signed-off-by: 's avatarErkki Seppälä <erkki.seppala@vincit.fi>
    Signed-off-by: 's avatarKeith Packard <keithp@keithp.com>
    Backported-to-NX-by: 's avatarMihai Moldovan <ionic@ionic.de>
    
    Fixes: ArcticaProject/nx-libs#417.
    c8a4e1e7
Name
Last commit
Last update
..
GL Loading commit data...
Xext Loading commit data...
Xi Loading commit data...
composite Loading commit data...
damageext Loading commit data...
dbe Loading commit data...
dix Loading commit data...
fb Loading commit data...
hw/nxagent Loading commit data...
include Loading commit data...
mi Loading commit data...
miext Loading commit data...
os Loading commit data...
randr Loading commit data...
record Loading commit data...
render Loading commit data...
xfixes Loading commit data...
xkb Loading commit data...
.gitignore Loading commit data...
Imakefile Loading commit data...
fix-miregion Loading commit data...
fix-miregion-private Loading commit data...
fix-region Loading commit data...