summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-15 13:26:31 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-15 13:26:31 +0000
commit2d6ee469fdf1a7ae03e3826ffcabcedec020ec71 (patch)
treef65b8e62393dcd25aff24960231638cebe6cb2d5
parent6ed1fbe7bedb8ea5639f34fe473447fcf5a6c654 (diff)
downloadlasso-2d6ee469fdf1a7ae03e3826ffcabcedec020ec71.tar.gz
lasso-2d6ee469fdf1a7ae03e3826ffcabcedec020ec71.tar.xz
lasso-2d6ee469fdf1a7ae03e3826ffcabcedec020ec71.zip
fixed a few "variable might be used uninitialized in this function" detected
with gcc-3.4 -O3.
-rw-r--r--lasso/id-ff/login.c13
-rw-r--r--lasso/id-ff/logout.c17
-rw-r--r--lasso/id-ff/name_registration.c3
-rw-r--r--lasso/id-ff/provider.c4
-rw-r--r--lasso/xml/tools.c2
-rw-r--r--lasso/xml/xml.c5
6 files changed, 25 insertions, 19 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 27f73719..b73b6543 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -380,7 +380,7 @@ lasso_login_accept_sso(LassoLogin *login)
{
LassoProfile *profile;
LassoSamlAssertion *assertion;
- LassoSamlNameIdentifier *ni, *idp_ni;
+ LassoSamlNameIdentifier *ni, *idp_ni = NULL;
LassoFederation *federation;
LassoSamlSubjectStatementAbstract *authentication_statement;
@@ -814,7 +814,7 @@ lasso_login_init_request(LassoLogin *login, gchar *response_msg,
char **query_fields;
gint ret = 0;
int i;
- char *artifact_b64, *provider_succint_id_b64;
+ char *artifact_b64 = NULL, *provider_succint_id_b64;
char provider_succint_id[21];
char artifact[43];
LassoSamlpRequestAbstract *request;
@@ -835,23 +835,23 @@ lasso_login_init_request(LassoLogin *login, gchar *response_msg,
free(query_fields[i]);
continue;
}
- artifact_b64 = strdup(query_fields[i]+8);
+ artifact_b64 = g_strdup(query_fields[i]+8);
free(query_fields[i]);
}
free(query_fields);
}
if (response_http_method == LASSO_HTTP_METHOD_POST) {
- artifact_b64 = strdup(response_msg);
+ artifact_b64 = g_strdup(response_msg);
}
i = xmlSecBase64Decode(artifact_b64, artifact, 43);
if (i < 0 || i > 42) {
- free(artifact_b64);
+ g_free(artifact_b64);
return -1;
}
if (artifact[0] != 0 || artifact[1] != 3) { /* wrong type code */
- free(artifact_b64);
+ g_free(artifact_b64);
return -1;
}
@@ -989,6 +989,7 @@ lasso_login_process_authn_request_msg(LassoLogin *login, const char *authn_reque
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
if (authn_request_msg == NULL) {
+ format = 0;
if (LASSO_PROFILE(login)->request == NULL) {
return critical_error(LASSO_PROFILE_ERROR_MISSING_REQUEST);
}
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 58297a34..2a2cbd0b 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -480,14 +480,17 @@ lasso_logout_process_response_msg(LassoLogout *logout, gchar *response_msg)
profile->response = lasso_lib_logout_response_new();
format = lasso_node_init_from_message(profile->response, response_msg);
- if (format == LASSO_MESSAGE_FORMAT_UNKNOWN || format == LASSO_MESSAGE_FORMAT_ERROR) {
- return critical_error(LASSO_PROFILE_ERROR_INVALID_MSG);
- }
- if (format == LASSO_MESSAGE_FORMAT_SOAP)
- response_method = LASSO_HTTP_METHOD_SOAP;
- if (format == LASSO_MESSAGE_FORMAT_QUERY)
- response_method = LASSO_HTTP_METHOD_REDIRECT;
+ switch (format) {
+ case LASSO_MESSAGE_FORMAT_SOAP:
+ response_method = LASSO_HTTP_METHOD_SOAP;
+ break;
+ case LASSO_MESSAGE_FORMAT_QUERY:
+ response_method = LASSO_HTTP_METHOD_REDIRECT;
+ break;
+ default:
+ return critical_error(LASSO_PROFILE_ERROR_INVALID_MSG);
+ }
/* get provider */
profile->remote_providerID = g_strdup(
diff --git a/lasso/id-ff/name_registration.c b/lasso/id-ff/name_registration.c
index 23a69bc8..eeb5ebcf 100644
--- a/lasso/id-ff/name_registration.c
+++ b/lasso/id-ff/name_registration.c
@@ -217,8 +217,7 @@ lasso_name_registration_init_request(LassoNameRegistration *name_registration,
profile->nameIdentifier = g_strdup(spNameIdentifier->content);
name_registration->oldNameIdentifier = g_strdup(oldNameIdentifier->content);
- }
- if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) {
+ } else { /* if (remote_provider->role == LASSO_PROVIDER_ROLE_SP) { */
if (federation->local_nameIdentifier == NULL) {
message(G_LOG_LEVEL_CRITICAL, "Local name identifier not found");
return -1;
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c
index 8daf4654..68387fd1 100644
--- a/lasso/id-ff/provider.c
+++ b/lasso/id-ff/provider.c
@@ -98,7 +98,7 @@ lassoHttpMethod lasso_provider_get_first_http_method(LassoProvider *provider,
char *protocol_profile_prefix;
GList *local_supported_profiles;
GList *remote_supported_profiles;
- GList *t1, *t2;
+ GList *t1, *t2 = NULL;
gboolean found;
if (remote_provider->role == LASSO_PROVIDER_ROLE_SP)
@@ -134,7 +134,7 @@ lassoHttpMethod lasso_provider_get_first_http_method(LassoProvider *provider,
if (found) {
if (g_str_has_suffix(t2->data, "http"))
return LASSO_HTTP_METHOD_REDIRECT;
- if (g_str_has_suffix(t2->data, "soap"))
+ if (t2 && g_str_has_suffix(t2->data, "soap"))
return LASSO_HTTP_METHOD_SOAP;
g_assert_not_reached();
}
diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c
index a52e387d..de2b609e 100644
--- a/lasso/xml/tools.c
+++ b/lasso/xml/tools.c
@@ -423,7 +423,7 @@ lasso_query_verify_signature(const char *query, const char *sender_public_key_fi
lassoSignatureMethod sign_method;
xmlChar *digest = NULL, *b64_signature = NULL;
xmlChar *e_rsa_alg = NULL, *e_dsa_alg = NULL;
- xmlSecByte *signature;
+ xmlSecByte *signature = NULL;
int key_size, status = 0, ret = 0;
g_return_val_if_fail(query != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index a04c3ffa..93decebf 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -778,7 +778,7 @@ lasso_node_new_from_soap(const char *soap)
LassoNode*
lasso_node_new_from_xmlNode(xmlNode *xmlnode)
{
- char *prefix;
+ char *prefix = NULL;
char *typename;
GType gtype;
LassoNode *node;
@@ -822,6 +822,9 @@ lasso_node_new_from_xmlNode(xmlNode *xmlnode)
xmlFree(xsitype);
}
+ if (prefix == NULL)
+ return NULL;
+
typename = g_strdup_printf("Lasso%s%s", prefix, xmlnode->name);
gtype = g_type_from_name(typename);