You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/09/01 15:03:48 UTC

[20/50] qpid-proton git commit: PROTON-1539: Ensure that SASL challenge and response frames generate a binary - And never a null even if the binary is zero length

PROTON-1539: Ensure that SASL challenge and response frames generate a binary
- And never a null even if the binary is zero length


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/1b1f3f9c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/1b1f3f9c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/1b1f3f9c

Branch: refs/heads/go1
Commit: 1b1f3f9cae1c68545f93c74e017edae039875440
Parents: 46f3007
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Aug 14 14:38:26 2017 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Aug 14 15:27:04 2017 -0400

----------------------------------------------------------------------
 proton-c/src/core/codec.c      | 8 ++++++++
 proton-c/src/sasl/cyrus_sasl.c | 3 +++
 proton-c/src/sasl/sasl.c       | 4 ++--
 3 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/core/codec.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/codec.c b/proton-c/src/core/codec.c
index 7809907..3417c94 100644
--- a/proton-c/src/core/codec.c
+++ b/proton-c/src/core/codec.c
@@ -529,6 +529,14 @@ int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap)
     case 'd':
       err = pn_data_put_double(data, va_arg(ap, double));
       break;
+    case 'Z':
+      {
+	// For maximum portability, caller must pass these as two separate args, not a single struct
+        size_t size = va_arg(ap, size_t);
+        char *start = va_arg(ap, char *);
+        err = pn_data_put_binary(data, pn_bytes(size, start));
+      }
+      break;
     case 'z':
       {
 	// For maximum portability, caller must pass these as two separate args, not a single struct

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/sasl/cyrus_sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/cyrus_sasl.c b/proton-c/src/sasl/cyrus_sasl.c
index ae910f4..88bdd7a 100644
--- a/proton-c/src/sasl/cyrus_sasl.c
+++ b/proton-c/src/sasl/cyrus_sasl.c
@@ -440,6 +440,9 @@ static int pni_wrap_server_start(pn_transport_t *transport, const char *mech_sel
     if (!in_bytes && strcmp(mech_selected, "ANONYMOUS")==0) {
         in_bytes = "";
         in_size = 0;
+    } else if (in_bytes && strcmp(mech_selected, "CRAM-MD5")==0) {
+        in_bytes = 0;
+        in_size = 0;
     }
     result = sasl_server_start(cyrus_conn,
                                mech_selected,

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/sasl/sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c
index 1469c51..fe778be 100644
--- a/proton-c/src/sasl/sasl.c
+++ b/proton-c/src/sasl/sasl.c
@@ -460,7 +460,7 @@ static void pni_post_sasl_frame(pn_transport_t *transport)
     }
     case SASL_POSTED_RESPONSE:
       if (sasl->last_state != SASL_POSTED_RESPONSE) {
-        pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[z]", SASL_RESPONSE, out.size, out.start);
+        pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[Z]", SASL_RESPONSE, out.size, out.start);
         pni_emit(transport);
       }
       break;
@@ -469,7 +469,7 @@ static void pni_post_sasl_frame(pn_transport_t *transport)
         desired_state = SASL_POSTED_MECHANISMS;
         continue;
       } else if (sasl->last_state != SASL_POSTED_CHALLENGE) {
-        pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[z]", SASL_CHALLENGE, out.size, out.start);
+        pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[Z]", SASL_CHALLENGE, out.size, out.start);
         pni_emit(transport);
       }
       break;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org