diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2007-09-18 16:08:24 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2007-09-18 16:08:24 +0000 |
| commit | 7c237005a8289738db7fee8d707d5c3be53e291e (patch) | |
| tree | 7799126edfaab3b1a996710e9d28d9bc4799b854 | |
| parent | 1bb2469952df1456ab7d3e6cc3bd90104ed9e6b7 (diff) | |
check soap enveloppe to prevent segfaults
| -rw-r--r-- | lasso/id-wsf/wsf_profile.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lasso/id-wsf/wsf_profile.c b/lasso/id-wsf/wsf_profile.c index 0eb67826..caad1571 100644 --- a/lasso/id-wsf/wsf_profile.c +++ b/lasso/id-wsf/wsf_profile.c @@ -854,6 +854,8 @@ lasso_wsf_profile_principal_is_online(LassoWsfProfile *profile) LassoSoapBindingProcessingContext *processing_context = NULL; GList *iter; + g_return_val_if_fail(LASSO_IS_SOAP_ENVELOPE(profile->soap_envelope_request), FALSE); + header = profile->soap_envelope_request->Header; iter = header->Other; while (iter) { @@ -890,10 +892,12 @@ lasso_wsf_profile_set_principal_status(LassoWsfProfile *profile, const char *sta LassoSoapBindingProcessingContext *processing_context = NULL; GList *iter; + g_return_if_fail(LASSO_IS_SOAP_ENVELOPE(profile->soap_envelope_request)); + header = profile->soap_envelope_request->Header; iter = header->Other; while (iter) { - if (LASSO_IS_SOAP_BINDING_PROCESSING_CONTEXT(iter->data) == TRUE) { + if (LASSO_IS_SOAP_BINDING_PROCESSING_CONTEXT(iter->data)) { processing_context = iter->data; break; } @@ -1083,8 +1087,9 @@ lasso_wsf_profile_build_soap_request_msg(LassoWsfProfile *profile) xmlXPathObject *xpathObj = NULL; - g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), - LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + g_return_val_if_fail(LASSO_IS_SOAP_ENVELOPE(profile->soap_envelope_request), + LASSO_SOAP_ERROR_MISSING_ENVELOPE); envelope = profile->soap_envelope_request; @@ -1417,14 +1422,11 @@ LassoSoapBindingProvider *lasso_wsf_profile_set_provider_soap_request(LassoWsfPr const char *providerId) { LassoSoapBindingProvider *provider; - LassoSoapEnvelope *soap_request; LassoSoapHeader *header; g_return_val_if_fail(LASSO_IS_WSF_PROFILE(profile), NULL); g_return_val_if_fail(providerId != NULL, NULL); - - soap_request = profile->soap_envelope_request; - g_return_val_if_fail(LASSO_IS_SOAP_ENVELOPE(soap_request) == TRUE, NULL); + g_return_val_if_fail(LASSO_IS_SOAP_ENVELOPE(profile->soap_envelope_request), NULL); header = profile->soap_envelope_request->Header; provider = lasso_soap_binding_provider_new(providerId); |
