summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-wsf-2.0/discovery.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c
index dc366705..9bfa58e1 100644
--- a/lasso/id-wsf-2.0/discovery.c
+++ b/lasso/id-wsf-2.0/discovery.c
@@ -132,6 +132,10 @@ lasso_idwsf2_discovery_process_metadata_register_msg(LassoIdWsf2Discovery *disco
/* Process request */
res = lasso_wsf2_profile_process_soap_request_msg(profile, message);
+ if (! LASSO_IS_IDWSF2_DISCO_SVC_MD_REGISTER(profile->request)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
+
/* If the request has been correctly processed, */
/* put interesting data into the discovery object */
if (res == 0) {
@@ -185,6 +189,10 @@ lasso_idwsf2_discovery_process_metadata_register_response_msg(LassoIdWsf2Discove
/* Process request */
res = lasso_wsf2_profile_process_soap_response_msg(profile, message);
+ if (! LASSO_IS_IDWSF2_DISCO_SVC_MD_REGISTER_RESPONSE(profile->response)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
+
/* If the response has been correctly processed, */
/* put interesting data into the discovery object */
if (res == 0) {
@@ -272,10 +280,14 @@ lasso_idwsf2_discovery_process_metadata_association_add_msg(LassoIdWsf2Discovery
LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_return_val_if_fail(message != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
+ identity = profile->identity;
+
/* Process request */
res = lasso_wsf2_profile_process_soap_request_msg(profile, message);
- identity = profile->identity;
+ if (! LASSO_IS_IDWSF2_DISCO_SVC_MD_ASSOCIATION_ADD(profile->request)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
/* If the request has been correctly processed, */
/* put interesting data into the discovery object */
@@ -326,6 +338,10 @@ lasso_idwsf2_discovery_process_metadata_association_add_response_msg(
/* Process request */
res = lasso_wsf2_profile_process_soap_response_msg(profile, message);
+ if (! LASSO_IS_IDWSF2_DISCO_SVC_MD_ASSOCIATION_ADD_RESPONSE(profile->response)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
+
/* If the response has been correctly processed, */
/* put interesting data into the discovery object */
if (res == 0) {
@@ -464,6 +480,10 @@ lasso_idwsf2_discovery_process_query_msg(LassoIdWsf2Discovery *discovery, const
/* Process request */
res = lasso_wsf2_profile_process_soap_request_msg(profile, message);
+ if (! LASSO_IS_IDWSF2_DISCO_QUERY(profile->request)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
+
/* If the request has been correctly processed, */
/* put interesting data into the discovery object */
if (res == 0) {
@@ -516,6 +536,10 @@ lasso_idwsf2_discovery_process_query_response_msg(LassoIdWsf2Discovery *discover
/* Process request */
res = lasso_wsf2_profile_process_soap_response_msg(profile, message);
+ if (! LASSO_IS_IDWSF2_DISCO_QUERY_RESPONSE(profile->response)) {
+ res = LASSO_PROFILE_ERROR_INVALID_SOAP_MSG;
+ }
+
/* If the response has been correctly processed, */
/* put interesting data into the discovery object */
if (res == 0) {