Projet

Général

Profil

0001-lasso_saml20_login_process_response_status_and_asser.patch

Jakub Hrozek, 26 juillet 2021 16:28

Télécharger (1,6 ko)

Voir les différences:

Subject: [PATCH] lasso_saml20_login_process_response_status_and_assertion:
 handle rc as per verify_hint

In case VERIFY_HINT was set to IGNORE and the login signature was
incorrect, lasso_saml20_login_process_response_status_and_assertion
would have jumped straight to the cleanup label which just returns the
return code. Let's jump to a new label handlerc instead which might set
the return code to 0 in case verify_hint is set to IGNORE.

Related: https://dev.entrouvert.org/issues/54689
 lasso/saml-2.0/login.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)
lasso/saml-2.0/login.c
1448 1448
					&subject->NameID, &subject->EncryptedID));
1449 1449
	lasso_foreach_full_end();
1450 1450

  
1451
	switch (verify_hint) {
1452
		case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE:
1453
		case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE:
1454
			break;
1455
		case LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE:
1456
			/* ignore signature errors */
1457
			if (rc == LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE) {
1458
				rc = 0;
1459
			}
1460
			break;
1461
		default:
1462
			g_assert(0);
1463
	}
1464 1451
cleanup:
1452
	if (verify_hint == LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE &&
1453
		rc == LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE) {
1454
	    profile->signature_status = rc;
1455
	    rc = 0;
1456
	}
1465 1457
	return rc;
1466 1458
}
1467 1459

  
1468
-