Blob Blame History Raw
From a68b8b418bfc42c628fee605cc52dca92ab410c9 Mon Sep 17 00:00:00 2001
From: Robbie Harwood <rharwood@redhat.com>
Date: Wed, 15 Mar 2017 14:52:08 -0400
Subject: [PATCH] Fix mismatched sign comparisons

We are c99, so also migrate to `for`-loop initializers where possible for
clarity.

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Reviewed-by: Simo Sorce <simo@redhat.com>
Merges: #173
(cherry picked from commit 377e92c7ead312c530b233a1e023493ecde033d6)
---
 proxy/src/client/gpm_acquire_cred.c          | 11 +++-------
 proxy/src/client/gpm_common.c                |  4 ++--
 proxy/src/client/gpm_import_and_canon_name.c |  7 +++---
 proxy/src/client/gpm_indicate_mechs.c        | 33 ++++++++++++----------------
 proxy/src/gp_common.h                        |  3 +--
 proxy/src/gp_config.c                        |  9 +++-----
 proxy/src/gp_conv.c                          |  6 ++---
 proxy/src/gp_creds.c                         |  3 +--
 proxy/src/gp_export.c                        |  9 +++-----
 proxy/src/gp_rpc_acquire_cred.c              |  5 ++---
 proxy/src/gp_rpc_debug.c                     | 26 +++++++++++-----------
 proxy/src/gp_rpc_indicate_mechs.c            | 15 +++++--------
 proxy/src/gp_socket.c                        |  4 ++--
 proxy/src/gp_util.c                          |  4 ++--
 proxy/tests/t_utils.c                        |  4 ++--
 15 files changed, 58 insertions(+), 85 deletions(-)

diff --git a/proxy/src/client/gpm_acquire_cred.c b/proxy/src/client/gpm_acquire_cred.c
index 632973d..8e30e1d 100644
--- a/proxy/src/client/gpm_acquire_cred.c
+++ b/proxy/src/client/gpm_acquire_cred.c
@@ -6,8 +6,6 @@ static int gpmint_cred_to_actual_mechs(gssx_cred *c, gss_OID_set *a)
 {
     gssx_cred_element *e;
     gss_OID_set m = GSS_C_NO_OID_SET;
-    int i;
-
 
     if (c->elements.elements_len) {
 
@@ -22,7 +20,7 @@ static int gpmint_cred_to_actual_mechs(gssx_cred *c, gss_OID_set *a)
             return ENOMEM;
         }
 
-        for (i = 0; i < c->elements.elements_len; i++) {
+        for (unsigned i = 0; i < c->elements.elements_len; i++) {
             e = &c->elements.elements_val[i];
 
             m->elements[i].elements = gp_memdup(e->mech.octet_string_val,
@@ -280,7 +278,6 @@ OM_uint32 gpm_inquire_cred(OM_uint32 *minor_status,
     uint32_t ret_maj = GSS_S_COMPLETE;
     uint32_t life;
     int cu;
-    int i;
 
     if (!cred) {
         *minor_status = 0;
@@ -308,8 +305,7 @@ OM_uint32 gpm_inquire_cred(OM_uint32 *minor_status,
     life = GSS_C_INDEFINITE;
     cu = -1;
 
-    for (i = 0; i < cred->elements.elements_len; i++) {
-
+    for (unsigned i = 0; i < cred->elements.elements_len; i++) {
         e = &cred->elements.elements_val[i];
 
         switch (e->cred_usage) {
@@ -402,7 +398,7 @@ OM_uint32 gpm_inquire_cred_by_mech(OM_uint32 *minor_status,
     gss_OID_desc tmp_oid;
     uint32_t ret_min = 0;
     uint32_t ret_maj = GSS_S_COMPLETE;
-    int i;
+    unsigned i;
 
     if (!cred) {
         *minor_status = 0;
@@ -414,7 +410,6 @@ OM_uint32 gpm_inquire_cred_by_mech(OM_uint32 *minor_status,
     }
 
     for (i = 0; i < cred->elements.elements_len; i++) {
-
         e = &cred->elements.elements_val[i];
         gp_conv_gssx_to_oid(&e->mech, &tmp_oid);
         if (!gss_oid_equal(&tmp_oid, mech_type)) {
diff --git a/proxy/src/client/gpm_common.c b/proxy/src/client/gpm_common.c
index 030765a..8c96986 100644
--- a/proxy/src/client/gpm_common.c
+++ b/proxy/src/client/gpm_common.c
@@ -166,7 +166,7 @@ static int gpm_send_buffer(struct gpm_ctx *gpmctx,
                            char *buffer, uint32_t length)
 {
     uint32_t size;
-    size_t wn;
+    ssize_t wn;
     size_t pos;
     bool retry;
     int ret;
@@ -232,7 +232,7 @@ static int gpm_recv_buffer(struct gpm_ctx *gpmctx,
                            char *buffer, uint32_t *length)
 {
     uint32_t size;
-    size_t rn;
+    ssize_t rn;
     size_t pos;
     int ret;
 
diff --git a/proxy/src/client/gpm_import_and_canon_name.c b/proxy/src/client/gpm_import_and_canon_name.c
index 83d0736..70149a3 100644
--- a/proxy/src/client/gpm_import_and_canon_name.c
+++ b/proxy/src/client/gpm_import_and_canon_name.c
@@ -275,7 +275,6 @@ OM_uint32 gpm_inquire_name(OM_uint32 *minor_status,
 {
     gss_buffer_set_t xattrs = GSS_C_NO_BUFFER_SET;
     int ret;
-    int i;
 
     *minor_status = 0;
 
@@ -306,13 +305,13 @@ OM_uint32 gpm_inquire_name(OM_uint32 *minor_status,
             *minor_status = ENOMEM;
             return GSS_S_FAILURE;
         }
-        for (i = 0; i < xattrs->count; i++) {
+        for (unsigned i = 0; i < xattrs->count; i++) {
             ret = gp_copy_gssx_to_buffer(
                         &name->name_attributes.name_attributes_val[i].attr,
                         &xattrs->elements[i]);
             if (ret) {
-                for (--i; i >= 0; i--) {
-                    free(xattrs->elements[i].value);
+                for (; i > 0; i--) {
+                    free(xattrs->elements[i-1].value);
                 }
                 free(xattrs->elements);
                 free(xattrs);
diff --git a/proxy/src/client/gpm_indicate_mechs.c b/proxy/src/client/gpm_indicate_mechs.c
index d4df923..b019a96 100644
--- a/proxy/src/client/gpm_indicate_mechs.c
+++ b/proxy/src/client/gpm_indicate_mechs.c
@@ -51,7 +51,6 @@ static uint32_t gpm_copy_gss_OID_set(uint32_t *minor_status,
     gss_OID_set n;
     uint32_t ret_maj;
     uint32_t ret_min;
-    int i;
 
     ret_maj = gss_create_empty_oid_set(&ret_min, &n);
     if (ret_maj) {
@@ -59,7 +58,7 @@ static uint32_t gpm_copy_gss_OID_set(uint32_t *minor_status,
         return ret_maj;
     }
 
-    for (i = 0; i < oldset->count; i++) {
+    for (size_t i = 0; i < oldset->count; i++) {
         ret_maj = gss_add_oid_set_member(&ret_min, &oldset->elements[i], &n);
         if (ret_maj) {
             *minor_status = ret_min;
@@ -124,7 +123,6 @@ static void gpmint_indicate_mechs(void)
     uint32_t ret_min;
     uint32_t ret_maj = 0;
     int ret = 0;
-    int i;
 
     memset(arg, 0, sizeof(gssx_arg_indicate_mechs));
     memset(res, 0, sizeof(gssx_res_indicate_mechs));
@@ -158,7 +156,7 @@ static void gpmint_indicate_mechs(void)
         goto done;
     }
 
-    for (i = 0; i < res->mechs.mechs_len; i++) {
+    for (unsigned i = 0; i < res->mechs.mechs_len; i++) {
         mi = &res->mechs.mechs_val[i];
         gi = &global_mechs.info[i];
 
@@ -222,7 +220,7 @@ static void gpmint_indicate_mechs(void)
         goto done;
     }
 
-    for (i = 0; i < res->mech_attr_descs.mech_attr_descs_len; i++) {
+    for (unsigned i = 0; i < res->mech_attr_descs.mech_attr_descs_len; i++) {
         ma = &res->mech_attr_descs.mech_attr_descs_val[i];
         ga = &global_mechs.desc[i];
 
@@ -249,7 +247,7 @@ static void gpmint_indicate_mechs(void)
 
 done:
     if (ret || ret_maj) {
-        for (i = 0; i < global_mechs.desc_len; i++) {
+        for (unsigned i = 0; i < global_mechs.desc_len; i++) {
             ga = &global_mechs.desc[i];
             gss_release_oid(&discard, &ga->attr);
             gss_release_buffer(&discard, ga->name);
@@ -258,7 +256,7 @@ done:
         }
         free(global_mechs.desc);
         global_mechs.desc = NULL;
-        for (i = 0; i < global_mechs.info_len; i++) {
+        for (unsigned i = 0; i < global_mechs.info_len; i++) {
             gi = &global_mechs.info[i];
             gss_release_oid(&discard, &gi->mech);
             gss_release_oid_set(&discard, &gi->name_types);
@@ -335,7 +333,6 @@ OM_uint32 gpm_inquire_names_for_mech(OM_uint32 *minor_status,
 {
     uint32_t ret_min;
     uint32_t ret_maj;
-    int i;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -351,7 +348,7 @@ OM_uint32 gpm_inquire_names_for_mech(OM_uint32 *minor_status,
         return GSS_S_FAILURE;
     }
 
-    for (i = 0; i < global_mechs.info_len; i++) {
+    for (unsigned i = 0; i < global_mechs.info_len; i++) {
         if (!gpm_equal_oids(global_mechs.info[i].mech, mech_type)) {
             continue;
         }
@@ -375,7 +372,6 @@ OM_uint32 gpm_inquire_mechs_for_name(OM_uint32 *minor_status,
     uint32_t discard;
     gss_OID name_type = GSS_C_NO_OID;
     int present;
-    int i;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -402,7 +398,7 @@ OM_uint32 gpm_inquire_mechs_for_name(OM_uint32 *minor_status,
         goto done;
     }
 
-    for (i = 0; i < global_mechs.info_len; i++) {
+    for (unsigned i = 0; i < global_mechs.info_len; i++) {
         ret_maj = gss_test_oid_set_member(&ret_min, name_type,
                                           global_mechs.info[i].name_types,
                                           &present);
@@ -439,7 +435,6 @@ OM_uint32 gpm_inquire_attrs_for_mech(OM_uint32 *minor_status,
     uint32_t ret_min;
     uint32_t ret_maj;
     uint32_t discard;
-    int i;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -451,7 +446,7 @@ OM_uint32 gpm_inquire_attrs_for_mech(OM_uint32 *minor_status,
         return GSS_S_FAILURE;
     }
 
-    for (i = 0; i < global_mechs.info_len; i++) {
+    for (unsigned i = 0; i < global_mechs.info_len; i++) {
         if (!gpm_equal_oids(global_mechs.info[i].mech, mech)) {
             continue;
         }
@@ -495,7 +490,6 @@ OM_uint32 gpm_inquire_saslname_for_mech(OM_uint32 *minor_status,
     uint32_t ret_min;
     uint32_t ret_maj;
     uint32_t discard;
-    int i;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -511,7 +505,7 @@ OM_uint32 gpm_inquire_saslname_for_mech(OM_uint32 *minor_status,
         return GSS_S_FAILURE;
     }
 
-    for (i = 0; i < global_mechs.info_len; i++) {
+    for (unsigned i = 0; i < global_mechs.info_len; i++) {
         if (!gpm_equal_oids(global_mechs.info[i].mech, desired_mech)) {
             continue;
         }
@@ -554,7 +548,6 @@ OM_uint32 gpm_display_mech_attr(OM_uint32 *minor_status,
     uint32_t ret_min;
     uint32_t ret_maj;
     uint32_t discard;
-    int i;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -570,7 +563,7 @@ OM_uint32 gpm_display_mech_attr(OM_uint32 *minor_status,
         return GSS_S_FAILURE;
     }
 
-    for (i = 0; i < global_mechs.desc_len; i++) {
+    for (unsigned i = 0; i < global_mechs.desc_len; i++) {
         if (!gpm_equal_oids(global_mechs.desc[i].attr, mech_attr)) {
             continue;
         }
@@ -614,7 +607,6 @@ OM_uint32 gpm_indicate_mechs_by_attrs(OM_uint32 *minor_status,
     uint32_t ret_maj;
     uint32_t discard;
     int present;
-    int i, j;
 
     if (!minor_status) {
         return GSS_S_CALL_INACCESSIBLE_WRITE;
@@ -636,8 +628,9 @@ OM_uint32 gpm_indicate_mechs_by_attrs(OM_uint32 *minor_status,
         return ret_maj;
     }
 
-    for (i = 0; i < global_mechs.info_len; i++) {
+    for (unsigned i = 0; i < global_mechs.info_len; i++) {
         if (desired_mech_attrs != GSS_C_NO_OID_SET) {
+            unsigned j;
             for (j = 0; j < desired_mech_attrs->count; j++) {
                 ret_maj = gss_test_oid_set_member(&ret_min,
                                             &desired_mech_attrs->elements[j],
@@ -657,6 +650,7 @@ OM_uint32 gpm_indicate_mechs_by_attrs(OM_uint32 *minor_status,
             }
         }
         if (except_mech_attrs != GSS_C_NO_OID_SET) {
+            unsigned j;
             for (j = 0; j < except_mech_attrs->count; j++) {
                 ret_maj = gss_test_oid_set_member(&ret_min,
                                             &except_mech_attrs->elements[j],
@@ -676,6 +670,7 @@ OM_uint32 gpm_indicate_mechs_by_attrs(OM_uint32 *minor_status,
             }
         }
         if (critical_mech_attrs != GSS_C_NO_OID_SET) {
+            unsigned j;
             for (j = 0; j < critical_mech_attrs->count; j++) {
                 ret_maj = gss_test_oid_set_member(&ret_min,
                                     &critical_mech_attrs->elements[j],
diff --git a/proxy/src/gp_common.h b/proxy/src/gp_common.h
index edc23b4..4f76e58 100644
--- a/proxy/src/gp_common.h
+++ b/proxy/src/gp_common.h
@@ -104,9 +104,8 @@ union gp_rpc_res {
 #define gp_options_find(res, opts, name, len) \
 do { \
     struct gssx_option *_v; \
-    int _o; \
     res = NULL; \
-    for (_o = 0; _o < opts.options_len; _o++) { \
+    for (unsigned _o = 0; _o < opts.options_len; _o++) { \
         _v = &opts.options_val[_o]; \
         if (gp_option_name_match(_v, name, len)) { \
             res = _v; \
diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c
index 5c1ca02..a671333 100644
--- a/proxy/src/gp_config.c
+++ b/proxy/src/gp_config.c
@@ -57,11 +57,9 @@ static void free_str_array(const char ***a, int *count)
 
 void free_cred_store_elements(gss_key_value_set_desc *cs)
 {
-    int i;
-
     if (!cs->elements) return;
 
-    for (i = 0; i < cs->count; i++) {
+    for (unsigned i = 0; i < cs->count; i++) {
         safefree(cs->elements[i].key);
         safefree(cs->elements[i].value);
     }
@@ -146,7 +144,7 @@ static int get_krb5_mech_cfg(struct gp_service *svc,
                                      &count, &strings);
     if (ret == 0) {
         const char *p;
-        size_t len;
+        ssize_t len;
         char *key;
 
         svc->krb5.store.elements =
@@ -698,7 +696,6 @@ struct gp_creds_handle *gp_service_get_creds_handle(struct gp_service *svc)
 void free_config(struct gp_config **cfg)
 {
     struct gp_config *config = *cfg;
-    uint32_t i;
 
     if (!config) {
         return;
@@ -709,7 +706,7 @@ void free_config(struct gp_config **cfg)
     free(config->socket_name);
     free(config->proxy_user);
 
-    for (i=0; i < config->num_svcs; i++) {
+    for (int i = 0; i < config->num_svcs; i++) {
         gp_service_free(config->svcs[i]);
         safefree(config->svcs[i]);
     }
diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c
index 71d6d9d..b874b06 100644
--- a/proxy/src/gp_conv.c
+++ b/proxy/src/gp_conv.c
@@ -599,7 +599,6 @@ done:
 int gp_conv_gssx_to_oid_set(gssx_OID_set *in, gss_OID_set *out)
 {
     gss_OID_set o;
-    int i;
 
     if (in->gssx_OID_set_len == 0) {
         *out = GSS_C_NO_OID_SET;
@@ -618,7 +617,7 @@ int gp_conv_gssx_to_oid_set(gssx_OID_set *in, gss_OID_set *out)
         return ENOMEM;
     }
 
-    for (i = 0; i < o->count; i++) {
+    for (size_t i = 0; i < o->count; i++) {
         o->elements[i].elements =
                         gp_memdup(in->gssx_OID_set_val[i].octet_string_val,
                                   in->gssx_OID_set_val[i].octet_string_len);
@@ -641,7 +640,6 @@ int gp_conv_gssx_to_oid_set(gssx_OID_set *in, gss_OID_set *out)
 int gp_conv_oid_set_to_gssx(gss_OID_set in, gssx_OID_set *out)
 {
     int ret;
-    int i;
 
     if (in->count == 0) {
         return 0;
@@ -653,7 +651,7 @@ int gp_conv_oid_set_to_gssx(gss_OID_set in, gssx_OID_set *out)
         return ENOMEM;
     }
 
-    for (i = 0; i < in->count; i++) {
+    for (size_t i = 0; i < in->count; i++) {
         ret = gp_conv_octet_string(in->elements[i].length,
                                    in->elements[i].elements,
                                    &out->gssx_OID_set_val[i]);
diff --git a/proxy/src/gp_creds.c b/proxy/src/gp_creds.c
index 6570b06..e05ad01 100644
--- a/proxy/src/gp_creds.c
+++ b/proxy/src/gp_creds.c
@@ -312,7 +312,6 @@ static int gp_get_cred_environment(struct gp_call_ctx *gpcall,
     int k_num = -1;
     int ck_num = -1;
     int cc_num = -1;
-    int d;
 
     memset(cs, 0, sizeof(gss_key_value_set_desc));
 
@@ -419,7 +418,7 @@ static int gp_get_cred_environment(struct gp_call_ctx *gpcall,
         ret = ENOMEM;
         goto done;
     }
-    for (d = 0; d < svc->krb5.store.count; d++) {
+    for (unsigned d = 0; d < svc->krb5.store.count; d++) {
         if (strcmp(svc->krb5.store.elements[d].key, "client_keytab") == 0) {
             ck_num = cs->count;
         } else if (strcmp(svc->krb5.store.elements[d].key, "keytab") == 0) {
diff --git a/proxy/src/gp_export.c b/proxy/src/gp_export.c
index 12b8d5f..3a927c9 100644
--- a/proxy/src/gp_export.c
+++ b/proxy/src/gp_export.c
@@ -288,7 +288,6 @@ uint32_t gp_export_gssx_cred(uint32_t *min, struct gp_call_ctx *gpcall,
     uint32_t acceptor_lifetime = 0;
     struct gssx_cred_element *el;
     int ret;
-    int i, j;
     struct gp_creds_handle *handle = NULL;
     gss_buffer_desc token = GSS_C_EMPTY_BUFFER;
 
@@ -314,8 +313,7 @@ uint32_t gp_export_gssx_cred(uint32_t *min, struct gp_call_ctx *gpcall,
     }
     out->elements.elements_len = mechanisms->count;
 
-    for (i = 0, j = 0; i < mechanisms->count; i++, j++) {
-
+    for (unsigned i = 0, j = 0; i < mechanisms->count; i++, j++) {
         el = &out->elements.elements_val[j];
 
         ret_maj = gss_inquire_cred_by_mech(&ret_min, *in,
@@ -399,11 +397,10 @@ static void gp_set_cred_options(gssx_cred *cred, gss_cred_id_t gss_cred)
     krb5_enctype *ktypes;
     bool no_ci_flags = false;
     uint32_t maj, min;
-    int i, j;
 
-    for (i = 0; i < cred->elements.elements_len; i++) {
+    for (unsigned i = 0; i < cred->elements.elements_len; i++) {
         ce = &cred->elements.elements_val[i];
-        for (j = 0; j < ce->options.options_len; j++) {
+        for (unsigned j = 0; j < ce->options.options_len; j++) {
             op = &ce->options.options_val[j];
             if ((op->option.octet_string_len ==
                     sizeof(KRB5_SET_ALLOWED_ENCTYPE)) &&
diff --git a/proxy/src/gp_rpc_acquire_cred.c b/proxy/src/gp_rpc_acquire_cred.c
index e9c7d56..fcb4fbe 100644
--- a/proxy/src/gp_rpc_acquire_cred.c
+++ b/proxy/src/gp_rpc_acquire_cred.c
@@ -20,7 +20,6 @@ int gp_acquire_cred(struct gp_call_ctx *gpcall,
     gss_cred_id_t *add_out_cred = NULL;
     int acquire_type = ACQ_NORMAL;
     int ret;
-    int i;
 
     aca = &arg->acquire_cred;
     acr = &res->acquire_cred;
@@ -63,7 +62,7 @@ int gp_acquire_cred(struct gp_call_ctx *gpcall,
             goto done;
         }
 
-        for (i = 0; i < desired_mechs->count; i++) {
+        for (unsigned i = 0; i < desired_mechs->count; i++) {
             desired_mech = &desired_mechs->elements[i];
 
             if (!gp_creds_allowed_mech(gpcall, desired_mech)) {
@@ -93,7 +92,7 @@ int gp_acquire_cred(struct gp_call_ctx *gpcall,
 
     cred_usage = gp_conv_gssx_to_cred_usage(aca->cred_usage);
 
-    for (i = 0; i < use_mechs->count; i++) {
+    for (unsigned i = 0; i < use_mechs->count; i++) {
         desired_mech = &use_mechs->elements[i];
         /* this should really be folded into an extended
          * gss_add_cred in gssapi that can accept a set of URIs
diff --git a/proxy/src/gp_rpc_debug.c b/proxy/src/gp_rpc_debug.c
index 2e2c050..a814448 100644
--- a/proxy/src/gp_rpc_debug.c
+++ b/proxy/src/gp_rpc_debug.c
@@ -19,7 +19,7 @@ void gpdbg_octet_string(octet_string *x)
         }
         fprintf(stderr, "... ] ");
     } else {
-        for (int i = 0; i < x->octet_string_len; i++) {
+        for (unsigned i = 0; i < x->octet_string_len; i++) {
             fprintf(stderr, "%x", x->octet_string_val[i]);
         }
         fprintf(stderr, " ] ");
@@ -55,7 +55,7 @@ void gpdbg_gssx_OID(gssx_OID *x)
 void gpdbg_gssx_OID_set(gssx_OID_set *x)
 {
     gp_debug_printf("{ ");
-    for (int i = 0; i < x->gssx_OID_set_len; i++) {
+    for (unsigned i = 0; i < x->gssx_OID_set_len; i++) {
         gpdbg_gssx_OID(&x->gssx_OID_set_val[i]);
     }
     gp_debug_printf("} ");
@@ -90,7 +90,7 @@ void gpdbg_gssx_option(gssx_option *x)
 #define gpdbg_extensions(x) do { \
     if ((x)->extensions.extensions_len > 0) { \
         gp_debug_printf("[ "); \
-        for (int i = 0; i < (x)->extensions.extensions_len; i++) { \
+        for (unsigned i = 0; i < (x)->extensions.extensions_len; i++) { \
             gpdbg_gssx_option(&(x)->extensions.extensions_val[i]); \
         } \
         gp_debug_printf("] "); \
@@ -100,7 +100,7 @@ void gpdbg_gssx_option(gssx_option *x)
 #define gpdbg_options(x) do { \
     if ((x)->options.options_len > 0) { \
         gp_debug_printf("[ "); \
-        for (int i = 0; i < (x)->options.options_len; i++) { \
+        for (unsigned i = 0; i < (x)->options.options_len; i++) { \
             gpdbg_gssx_option(&(x)->options.options_val[i]); \
         } \
         gp_debug_printf("] "); \
@@ -168,7 +168,7 @@ void gpdbg_gssx_call_ctx(gssx_call_ctx *x)
 #define gpdbg_name_attributes(X) do { \
     gp_debug_printf("[ "); \
     if (x->name_attributes.name_attributes_len > 0) { \
-        for (int i = 0; i < x->name_attributes.name_attributes_len; i++) { \
+        for (unsigned i = 0; i < x->name_attributes.name_attributes_len; i++) { \
             gpdbg_gssx_name_attr( \
                 &x->name_attributes.name_attributes_val[i]); \
         } \
@@ -209,7 +209,7 @@ void gpdbg_gssx_cred(gssx_cred *x)
     gp_debug_printf("{ ");
     gpdbg_gssx_name(&x->desired_name);
     gp_debug_printf("[ ");
-    for (int i = 0; i < x->elements.elements_len; i++) {
+    for (unsigned i = 0; i < x->elements.elements_len; i++) {
         gpdbg_gssx_cred_element(&x->elements.elements_val[i]);
     }
     gp_debug_printf("] ");
@@ -289,17 +289,17 @@ void gpdbg_gssx_res_indicate_mechs(gssx_res_indicate_mechs *x)
     gp_debug_printf("    GSSX_RES_INDICATE_MECHS( status: ");
     gpdbg_gssx_status(&x->status);
     gp_debug_printf("mechs: [ ");
-    for (int i = 0; i < x->mechs.mechs_len; i++) {
+    for (unsigned i = 0; i < x->mechs.mechs_len; i++) {
         gpdbg_gssx_mech_info(&x->mechs.mechs_val[i]);
     }
     gp_debug_printf("] ");
     gp_debug_printf("mech_attr_descs: [ ");
-    for (int i = 0; i < x->mech_attr_descs.mech_attr_descs_len; i++) {
+    for (unsigned i = 0; i < x->mech_attr_descs.mech_attr_descs_len; i++) {
         gpdbg_gssx_mech_attr(&x->mech_attr_descs.mech_attr_descs_val[i]);
     }
     gp_debug_printf("] ");
     gp_debug_printf("supported_extensions: [ ");
-    for (int i = 0;
+    for (unsigned i = 0;
          i < x->supported_extensions.supported_extensions_len; i++) {
         gpdbg_gssx_buffer(
             &x->supported_extensions.supported_extensions_val[i]);
@@ -602,7 +602,7 @@ void gpdbg_gssx_arg_wrap(gssx_arg_wrap *x)
     gp_debug_printf("conf_req: ");
     gp_debug_printf("%d ", (int)x->conf_req);
     gp_debug_printf("message_buffer: [ ");
-    for (int i = 0; i < x->message_buffer.message_buffer_len; i++) {
+    for (unsigned i = 0; i < x->message_buffer.message_buffer_len; i++) {
         gpdbg_octet_string(&x->message_buffer.message_buffer_val[i]);
     }
     gp_debug_printf("] ");
@@ -618,7 +618,7 @@ void gpdbg_gssx_res_wrap(gssx_res_wrap *x)
     gp_debug_printf("context_handle: ");
     GPRPCDEBUG(gssx_ctx, x->context_handle);
     gp_debug_printf("token_buffer: [ ");
-    for (int i = 0; i < x->token_buffer.token_buffer_len; i++) {
+    for (unsigned i = 0; i < x->token_buffer.token_buffer_len; i++) {
         gpdbg_octet_string(&x->token_buffer.token_buffer_val[i]);
     }
     gp_debug_printf("] ");
@@ -640,7 +640,7 @@ void gpdbg_gssx_arg_unwrap(gssx_arg_unwrap *x)
     gp_debug_printf("context_handle: ");
     gpdbg_gssx_ctx(&x->context_handle);
     gp_debug_printf("token_buffer: [ ");
-    for (int i = 0; i < x->token_buffer.token_buffer_len; i++) {
+    for (unsigned i = 0; i < x->token_buffer.token_buffer_len; i++) {
         gpdbg_octet_string(&x->token_buffer.token_buffer_val[i]);
     }
     gp_debug_printf("] ");
@@ -656,7 +656,7 @@ void gpdbg_gssx_res_unwrap(gssx_res_unwrap *x)
     gp_debug_printf("context_handle: ");
     GPRPCDEBUG(gssx_ctx, x->context_handle);
     gp_debug_printf("message_buffer: [ ");
-    for (int i = 0; i < x->message_buffer.message_buffer_len; i++) {
+    for (unsigned i = 0; i < x->message_buffer.message_buffer_len; i++) {
         gpdbg_octet_string(&x->message_buffer.message_buffer_val[i]);
     }
     gp_debug_printf("] ");
diff --git a/proxy/src/gp_rpc_indicate_mechs.c b/proxy/src/gp_rpc_indicate_mechs.c
index 8abbc7f..6ae6756 100644
--- a/proxy/src/gp_rpc_indicate_mechs.c
+++ b/proxy/src/gp_rpc_indicate_mechs.c
@@ -25,8 +25,7 @@ int gp_indicate_mechs(struct gp_call_ctx *gpcall UNUSED,
     uint32_t ret_maj;
     uint32_t ret_min;
     int present;
-    int h, i, j;
-    int ret;
+     int ret;
 
     ima = &arg->indicate_mechs;
     imr = &res->indicate_mechs;
@@ -53,8 +52,7 @@ int gp_indicate_mechs(struct gp_call_ctx *gpcall UNUSED,
     }
     imr->mechs.mechs_len = mech_set->count;
 
-    for (i = 0, h = 0; i < mech_set->count; i++, h++) {
-
+    for (unsigned i = 0, h = 0; i < mech_set->count; i++, h++) {
         mi = &imr->mechs.mechs_val[h];
 
         ret = gp_conv_oid_to_gssx(&mech_set->elements[i], &mi->mech);
@@ -104,8 +102,7 @@ int gp_indicate_mechs(struct gp_call_ctx *gpcall UNUSED,
             ret_min = ret;
             goto done;
         }
-        for (j = 0; j < mech_attrs->count; j++) {
-
+        for (unsigned j = 0; j < mech_attrs->count; j++) {
             ret_maj = gss_test_oid_set_member(&ret_min,
                                               &mech_attrs->elements[j],
                                               attr_set,
@@ -136,8 +133,7 @@ int gp_indicate_mechs(struct gp_call_ctx *gpcall UNUSED,
             goto done;
         }
 
-        for (j = 0; j < known_mech_attrs->count; j++) {
-
+        for (unsigned j = 0; j < known_mech_attrs->count; j++) {
             ret_maj = gss_test_oid_set_member(&ret_min,
                                               &known_mech_attrs->elements[j],
                                               attr_set,
@@ -205,8 +201,7 @@ int gp_indicate_mechs(struct gp_call_ctx *gpcall UNUSED,
     }
     imr->mech_attr_descs.mech_attr_descs_len = attr_set->count;
 
-    for (i = 0; i < attr_set->count; i++) {
-
+    for (unsigned i = 0; i < attr_set->count; i++) {
         ma = &imr->mech_attr_descs.mech_attr_descs_val[i];
 
         ret = gp_conv_oid_to_gssx(&attr_set->elements[i], &ma->attr);
diff --git a/proxy/src/gp_socket.c b/proxy/src/gp_socket.c
index 829ff21..17ecf7c 100644
--- a/proxy/src/gp_socket.c
+++ b/proxy/src/gp_socket.c
@@ -303,7 +303,7 @@ static void gp_socket_read(verto_ctx *vctx, verto_ev *ev)
     struct gp_buffer *rbuf;
     uint32_t size;
     bool header = false;
-    size_t rn;
+    ssize_t rn;
     int ret;
     int fd;
 
@@ -487,7 +487,7 @@ static void gp_socket_write(verto_ctx *vctx, verto_ev *ev)
         return;
     }
     if (vecs == 2) {
-        if (wn < sizeof(size)) {
+        if (wn < (ssize_t) sizeof(size)) {
             /* don't bother trying to handle sockets that can't
              * buffer even 4 bytes */
             gp_conn_free(wbuf->conn);
diff --git a/proxy/src/gp_util.c b/proxy/src/gp_util.c
index ca83eb3..f158b84 100644
--- a/proxy/src/gp_util.c
+++ b/proxy/src/gp_util.c
@@ -109,7 +109,7 @@ char *gp_strerror(int errnum)
 ssize_t gp_safe_read(int fd, void *buf, size_t count)
 {
     char *b = (char *)buf;
-    ssize_t len = 0;
+    size_t len = 0;
     ssize_t ret;
 
     do {
@@ -128,7 +128,7 @@ ssize_t gp_safe_read(int fd, void *buf, size_t count)
 ssize_t gp_safe_write(int fd, const void *buf, size_t count)
 {
     const char *b = (const char *)buf;
-    ssize_t len = 0;
+    size_t len = 0;
     ssize_t ret;
 
     do {
diff --git a/proxy/tests/t_utils.c b/proxy/tests/t_utils.c
index 6af9a16..36f7bd1 100644
--- a/proxy/tests/t_utils.c
+++ b/proxy/tests/t_utils.c
@@ -8,7 +8,7 @@
 int t_send_buffer(int fd, char *buf, uint32_t len)
 {
     uint32_t size;
-    size_t wn;
+    ssize_t wn;
     size_t pos;
 
     size = htonl(len);
@@ -36,7 +36,7 @@ int t_send_buffer(int fd, char *buf, uint32_t len)
 int t_recv_buffer(int fd, char *buf, uint32_t *len)
 {
     uint32_t size;
-    size_t rn;
+    ssize_t rn;
     size_t pos;
 
     rn = read(fd, &size, sizeof(uint32_t));