diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2012-03-20 20:29:57 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2012-03-23 13:10:54 +0100 |
commit | 4df135c858d7dfb1aa0ae5d3cb17d786410d1544 (patch) | |
tree | 05663315cb85c724b1d17178baa5bbf7a5bfaacf /server | |
parent | d4ba4ee690aeb72b86c5342c77a54b5a1a185975 (diff) | |
download | spice-4df135c858d7dfb1aa0ae5d3cb17d786410d1544.tar.gz spice-4df135c858d7dfb1aa0ae5d3cb17d786410d1544.tar.xz spice-4df135c858d7dfb1aa0ae5d3cb17d786410d1544.zip |
sasl: small refactoring, check memcheck != NULL
Diffstat (limited to 'server')
-rw-r--r-- | server/reds.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/server/reds.c b/server/reds.c index b5d185e1..30e3ac04 100644 --- a/server/reds.c +++ b/server/reds.c @@ -2480,9 +2480,7 @@ static void reds_start_auth_sasl(RedLinkInfo *link) if (err != SASL_OK) { red_printf("cannot set SASL external SSF %d (%s)", err, sasl_errstring(err, NULL, NULL)); - sasl_dispose(&sasl->conn); - sasl->conn = NULL; - goto error; + goto error_dispose; } } else { sasl->wantSSF = 1; @@ -2510,9 +2508,7 @@ static void reds_start_auth_sasl(RedLinkInfo *link) if (err != SASL_OK) { red_printf("cannot set SASL security props %d (%s)", err, sasl_errstring(err, NULL, NULL)); - sasl_dispose(&sasl->conn); - sasl->conn = NULL; - goto error; + goto error_dispose; } err = sasl_listmech(sasl->conn, @@ -2523,13 +2519,12 @@ static void reds_start_auth_sasl(RedLinkInfo *link) &mechlist, NULL, NULL); - if (err != SASL_OK) { + if (err != SASL_OK || mechlist == NULL) { red_printf("cannot list SASL mechanisms %d (%s)", err, sasl_errdetail(sasl->conn)); - sasl_dispose(&sasl->conn); - sasl->conn = NULL; - goto error; + goto error_dispose; } + red_printf("Available mechanisms for client: '%s'", mechlist); sasl->mechlist = spice_strdup(mechlist); @@ -2549,6 +2544,9 @@ static void reds_start_auth_sasl(RedLinkInfo *link) return; +error_dispose: + sasl_dispose(&sasl->conn); + sasl->conn = NULL; error: reds_link_free(link); return; |