Commit Graph

17 Commits

Author SHA1 Message Date
adfoster-r7 069ad805c1 Fix ruby 3.1 crashes when garbage collecting meterpreter resources 2023-05-05 14:04:17 +01:00
adfoster-r7 f145a214ca Add exception handling for finalizer methods 2023-02-07 20:28:15 +00:00
OJ 8070074da3 Almost final refactor of how IDs are handled 2020-06-09 08:58:26 +10:00
Brent Cook c250740a81 Fixup finalizers to not double-close Meterpreter objects
We add finalizers to an assortment of Meterpreter-managed objects in order to
clean things up in the event that a post module crashes and does not clean
things up. However, this also means that even a properly-written post module
can lead to an object getting double-closed on the Meterpreter session when the
garbage collector kicks in. This can lead to quite non-deterministic behavior
and crashes.

This change modifies the instance close methods to unregister the finalizer on
close, ensuring we cannot do a double-close automatically if one is requested
explicitly first. As an additional measure, we check an instance variable to
see if we called close directly twice as well. This is not sufficient in
itself, since we do not have a reference to 'self' in the finalizer proc to
check the close state.

This also removes a couple of references to 'self' in the finalizer proc
itself, which may cure some memory leaks as well due to circular references.
2016-03-02 21:43:51 -06:00
Jonathan 575072585f removed shebangs from files within rex 2013-11-07 18:51:59 -05:00
Tab Assassin 7e5e0f7fc8 Retab lib 2013-08-30 16:28:33 -05:00
HD Moore d656e3185f Mark all libraries as defaulting to 8-bit strings 2012-06-29 00:18:28 -05:00
James Lee 70b463b257 msftidy run 2011-11-20 11:39:27 +11:00
HD Moore fba2cb6d2d Remove the response wait for close calls triggered by the finalizer, should help in a few corner cases that currently result in a timeout or hang.
git-svn-id: file:///home/svn/framework3/trunk@10876 4d416f70-5f16-0410-b530-b9f4589650da
2010-11-03 03:03:29 +00:00
James Lee 2dbf731946 fix ArgumentError in everything that closes a process handle
git-svn-id: file:///home/svn/framework3/trunk@10776 4d416f70-5f16-0410-b530-b9f4589650da
2010-10-21 17:10:46 +00:00
HD Moore 3e09fc30ae Fixes #2070 by adding finalizers to process, event, thread, registry, and channels.
git-svn-id: file:///home/svn/framework3/trunk@10711 4d416f70-5f16-0410-b530-b9f4589650da
2010-10-16 19:39:11 +00:00
Ramon de C Valle f124597a56 Code cleanups
git-svn-id: file:///home/svn/framework3/trunk@5773 4d416f70-5f16-0410-b530-b9f4589650da
2008-10-19 21:03:39 +00:00
HD Moore 88658064df /usr/bin/ruby vs /usr/bin/env ruby
git-svn-id: file:///home/svn/incoming/trunk@3242 4d416f70-5f16-0410-b530-b9f4589650da
2005-12-17 06:46:23 +00:00
Matt Miller 95f8210853 major doc update
git-svn-id: file:///home/svn/incoming/trunk@3029 4d416f70-5f16-0410-b530-b9f4589650da
2005-11-15 05:22:13 +00:00
Spoon M 7bbae355d6 mass require moving of /lib
git-svn-id: file:///home/svn/incoming/trunk@2690 4d416f70-5f16-0410-b530-b9f4589650da
2005-07-09 21:18:49 +00:00
Matt Miller 3fa1f61b78 removed dbg prints
git-svn-id: file:///home/svn/incoming/trunk@2382 4d416f70-5f16-0410-b530-b9f4589650da
2005-04-16 07:32:24 +00:00
Matt Miller 18cd568415 thread stuff
git-svn-id: file:///home/svn/incoming/trunk@2381 4d416f70-5f16-0410-b530-b9f4589650da
2005-04-16 07:29:06 +00:00