summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorArtyom Poptsov <poptsov.artyom@gmail.com>2014-06-06 04:07:25 +0400
committerArtyom Poptsov <poptsov.artyom@gmail.com>2014-06-06 04:07:25 +0400
commitc8bc04c45c66c8e416500b04f0042ec7b010958c (patch)
tree14d1b17b51aa6f58b614cb04f331fa04c8f6f114 /NEWS
parenttests/key.scm: New test suite (diff)
downloadguile-ssh-c8bc04c45c66c8e416500b04f0042ec7b010958c.tar.gz
Fix a GC issue: Keep reference to a parent object in smobs
Fix a GC issue: Keep a reference to the parent session in channel and message smobs to prevent the session from premature GC'ing. Without the fix GC could free a session even if there are live channels and by that break the channels. Reported by Ludovic Courtès <ludo@gnu.org> * ssh/channel-type.h (channel_data): Store a reference to the parent session. * ssh/message-type.h (message_data): Likewise. * ssh/channel-type.c (_ssh_channel_to_scm): Change argument list. All callers updated. (guile_ssh_make_channel): Update. * ssh/message-func.c (guile_ssh_message_channel_request_open_reply_accept): Update. * ssh/server-func.c (guile_ssh_server_message_get): Store a reference to a session in the message smob. * NEWS: Update.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS4
1 files changed, 4 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 2ab30a5..082bce8 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,10 @@ Copyright (C) Artyom V. Poptsov <poptsov.artyom@gmail.com>
** New `bytevector->hex-string' procedure in (ssh key)
** Add tests for Guile-SSH keys
** Bug fixes
+*** Fix a GC issue
+ Keep a reference to the parent session in channels and messages to prevent
+ the session from premature GC'ing. Without that GC could free a session
+ even if there are live channels and by that break the channels.
*** `public-key?' and `private-key?' now produce correct result
Functions now return `#f' if the given argument is not a Guile-SSH
key object.