Jarod, et al.:

This is a patch to addresses an issue I discovered yesterday in
CosignModule-1.0.0beta2.  The issue is as follows:

When the socket connection(s) between the IIS7 CosignModule filter and
central CoSign server(s) times out/is closed, as determined in the first
/for/ loop in ConnectionList::CheckCookie, the function reattempts
cookie validation by calling itself.  However the return value from this
second CheckCookie call was not being set in the /status/ variable.
Additionally, the following /if/ statement should be skipped if the
second CheckCookie call successfully validated the cookie (and ran that
/if/ statement).

Patched against cosignmodule HEAD as of this morning (2009-02-19 10:00
EST).  Please see attached.

Best,

Darian
-- 
________________________________________________________________________

Darian Anthony Patrick
Senior Programmer Analyst, Application Security
Office of Information Systems & Computing   Voice:        (215) 573-1955
Networking & Telecommunications Unit       E-mail: [email protected]
University of Pennsylvania            Jabber/XMPP:     [email protected]
                                   ---
            CFC7 DF03 337E F7F6 1829 71ED 1038 88AF 3C88 E55C
________________________________________________________________________
Index: ConnectionList.cpp
===================================================================
RCS file: /cvsroot/cosign/cosignmodule/ConnectionList.cpp,v
retrieving revision 1.2
diff -u -r1.2 ConnectionList.cpp
--- ConnectionList.cpp	24 Mar 2008 21:27:26 -0000	1.2
+++ ConnectionList.cpp	19 Feb 2009 18:13:21 -0000
@@ -245,10 +245,15 @@
 		CosignTrace0( L"Repopulating and trying again..." );
 		Depopulate();
 		Populate();
-		CheckCookie( cookie, csi, FALSE );
+		status = CheckCookie( cookie, csi, FALSE );
 	}
 
-	if ( status == COSIGNLOGGEDIN ) {
+    /*
+     * DAP UPENN: If status is COSIGNLOGGEDIN but goodConnnections is 0,
+     * that means we repopulated and tried again successfully above and,
+     * therefore, this block shouldn't run
+     */
+    if ( status == COSIGNLOGGEDIN && goodConnections != 0) {
 		CosignTrace0( L"Putting values into csi" );
 		std::vector<std::string>	authData;
 		std::stringstream	cookieParser( in );
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Cosign-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cosign-discuss

Reply via email to