From 4a5d7debd5cc73cc7df7726917e36a8e6a1f0aea Mon Sep 17 00:00:00 2001 From: James Lee Date: Tue, 28 Feb 2012 20:50:42 -0700 Subject: [PATCH 1/2] Add the usleep back in MM convinced me. --- .../source/meterpreter/source/common/arch/posix/scheduler.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/external/source/meterpreter/source/common/arch/posix/scheduler.c b/external/source/meterpreter/source/common/arch/posix/scheduler.c index f590793de0..12e26dec65 100644 --- a/external/source/meterpreter/source/common/arch/posix/scheduler.c +++ b/external/source/meterpreter/source/common/arch/posix/scheduler.c @@ -243,6 +243,10 @@ scheduler_run(THREAD *thread) // &scheduler_cond, LIST_EMPTY(&WEHead), polltable == NULL); pthread_cond_wait(&scheduler_cond, &scheduler_mutex); + + // pthread_cond_wait still chews CPU in some cases, usleep to yield + // processor so we don't just spin. + usleep(1000); } LIST_FOREACH(current, &WEHead, link) { From f5e2d1c19bb73ef4ca3df0b4fdb34e30ca7865ac Mon Sep 17 00:00:00 2001 From: James Lee Date: Wed, 29 Feb 2012 08:14:02 -0700 Subject: [PATCH 2/2] Grevious typo causing load_session_info failure That's the problem with rescue ::Exception, it catches crap like this and it takes a while before anyone notices. =( --- lib/msf/base/sessions/meterpreter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/msf/base/sessions/meterpreter.rb b/lib/msf/base/sessions/meterpreter.rb index 8c148cd38c..79a1237bf3 100644 --- a/lib/msf/base/sessions/meterpreter.rb +++ b/lib/msf/base/sessions/meterpreter.rb @@ -334,7 +334,7 @@ class Meterpreter < Rex::Post::Meterpreter::Client # Find the first non-loopback address if not nhost - iface = ifaces.select{|i| t.ip != "127.0.0.1" } + iface = ifaces.select{|i| i.ip != "127.0.0.1" } if iface.length > 0 nhost = iface.first.ip end