---
 tests/krb5context.c | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/tests/krb5context.c b/tests/krb5context.c
index 625ab79..a6701f8 100644
--- a/tests/krb5context.c
+++ b/tests/krb5context.c
@@ -180,9 +180,10 @@ main (int argc, char *argv[])
                                           GSS_C_NO_CHANNEL_BINDINGS,
                                           GSS_C_NO_BUFFER, NULL,
                                           &bufdesc2, &ret_flags, NULL);
-         if (ret_flags != (GSS_C_REPLAY_FLAG |
-                           GSS_C_CONF_FLAG |
-                           GSS_C_SEQUENCE_FLAG | GSS_C_PROT_READY_FLAG))
+         if (!GSS_ERROR (maj_stat) && ret_flags != (GSS_C_REPLAY_FLAG |
+                                                    GSS_C_CONF_FLAG |
+                                                    GSS_C_SEQUENCE_FLAG |
+                                                    GSS_C_PROT_READY_FLAG))
            fail ("loop 2 ret_flags failure (%u)\n", ret_flags);
          if (maj_stat != GSS_S_COMPLETE)
            fail ("loop 1 init failure\n");
@@ -222,10 +223,10 @@ main (int argc, char *argv[])
                                             NULL,
                                             &bufdesc,
                                             &ret_flags, &time_rec, NULL);
-         if (ret_flags != (GSS_C_MUTUAL_FLAG |
-                           /* XXX GSS_C_REPLAY_FLAG |
-                              GSS_C_SEQUENCE_FLAG | */
-                           GSS_C_PROT_READY_FLAG))
+         if (!GSS_ERROR (maj_stat) && ret_flags != (GSS_C_MUTUAL_FLAG |
+                                                    /* XXX GSS_C_REPLAY_FLAG |
+                                                       GSS_C_SEQUENCE_FLAG | */
+                                                    GSS_C_PROT_READY_FLAG))
            fail ("loop 0 accept flag failure (%u)\n", ret_flags);
          break;
 
@@ -302,9 +303,10 @@ main (int argc, char *argv[])
                                           GSS_C_NO_CHANNEL_BINDINGS,
                                           &bufdesc, NULL,
                                           &bufdesc2, &ret_flags, &time_rec);
-         if (ret_flags != (GSS_C_MUTUAL_FLAG |
-                           GSS_C_REPLAY_FLAG |
-                           GSS_C_SEQUENCE_FLAG | GSS_C_PROT_READY_FLAG))
+         if (!GSS_ERROR (maj_stat) && ret_flags != (GSS_C_MUTUAL_FLAG |
+                                                    GSS_C_REPLAY_FLAG |
+                                                    GSS_C_SEQUENCE_FLAG |
+                                                    GSS_C_PROT_READY_FLAG))
            fail ("loop 1 ret_flags failure (%u)\n", ret_flags);
          break;
 
@@ -340,15 +342,16 @@ main (int argc, char *argv[])
            fail ("server gss_unwrap failure\n");
            display_status ("client wrap", maj_stat, min_stat);
          }
-
-       if (pt.length != pt2.length
+       else if (pt.length != pt2.length
            || memcmp (pt2.value, pt.value, pt.length) != 0)
-         fail ("wrap+unwrap failed (%d, %d, %.*s)\n",
-               (int) pt.length, (int) pt2.length, (int) pt2.length,
-               (char *) pt2.value);
+         {
+           fail ("wrap+unwrap failed (%d, %d, %.*s)\n",
+                 (int) pt.length, (int) pt2.length, (int) pt2.length,
+                 (char *) pt2.value);
 
-       gss_release_buffer (&min_stat, &ct);
-       gss_release_buffer (&min_stat, &pt2);
+           gss_release_buffer (&min_stat, &ct);
+           gss_release_buffer (&min_stat, &pt2);
+         }
       }
 
       maj_stat = gss_delete_sec_context (&min_stat, &cctx, GSS_C_NO_BUFFER);

base-commit: aca95d48324b93847d4979b0dbd84b352715868d
-- 
2.45.1


Reply via email to