diff --git a/media/mtransport/nricectx.cpp b/media/mtransport/nricectx.cpp
index 2710e97d3a5a0bf2055b9fe397230450fd1982cd..a64578aa864d2d1454f4534658227d623bb6ae61 100644
--- a/media/mtransport/nricectx.cpp
+++ b/media/mtransport/nricectx.cpp
@@ -116,7 +116,7 @@ const char kNrIceTransportTls[] = "tls";
 static bool initialized = false;
 
 // Implement NSPR-based crypto algorithms
-static int nr_crypto_nss_random_bytes(UCHAR *buf, int len) {
+static int nr_crypto_nss_random_bytes(UCHAR *buf, size_t len) {
   UniquePK11SlotInfo slot(PK11_GetInternalSlot());
   if (!slot)
     return R_INTERNAL;
@@ -128,7 +128,7 @@ static int nr_crypto_nss_random_bytes(UCHAR *buf, int len) {
   return 0;
 }
 
-static int nr_crypto_nss_hmac(UCHAR *key, int keyl, UCHAR *buf, int bufl,
+static int nr_crypto_nss_hmac(UCHAR *key, size_t keyl, UCHAR *buf, size_t bufl,
                               UCHAR *result) {
   CK_MECHANISM_TYPE mech = CKM_SHA_1_HMAC;
   PK11SlotInfo *slot = nullptr;
@@ -180,7 +180,7 @@ static int nr_crypto_nss_hmac(UCHAR *key, int keyl, UCHAR *buf, int bufl,
   return err;
 }
 
-static int nr_crypto_nss_md5(UCHAR *buf, int bufl, UCHAR *result) {
+static int nr_crypto_nss_md5(UCHAR *buf, size_t bufl, UCHAR *result) {
   int err = R_INTERNAL;
   SECStatus rv;
 
@@ -732,11 +732,11 @@ void NrIceCtx::internal_SetTimerAccelarator(int divider) {
 }
 
 void NrIceCtx::AccumulateStats(const NrIceStats& stats) {
-  nr_ice_accumulate_count(&(ctx_->stats.stun_retransmits),
-                          stats.stun_retransmits);
-  nr_ice_accumulate_count(&(ctx_->stats.turn_401s), stats.turn_401s);
-  nr_ice_accumulate_count(&(ctx_->stats.turn_403s), stats.turn_403s);
-  nr_ice_accumulate_count(&(ctx_->stats.turn_438s), stats.turn_438s);
+  nr_accumulate_count(&(ctx_->stats.stun_retransmits),
+                      stats.stun_retransmits);
+  nr_accumulate_count(&(ctx_->stats.turn_401s), stats.turn_401s);
+  nr_accumulate_count(&(ctx_->stats.turn_403s), stats.turn_403s);
+  nr_accumulate_count(&(ctx_->stats.turn_438s), stats.turn_438s);
 }
 
 NrIceStats NrIceCtx::Destroy() {
diff --git a/media/mtransport/third_party/nICEr/nicer.gyp b/media/mtransport/third_party/nICEr/nicer.gyp
index 114dfcb4dff06faad2b159c49cbf89003bb1b64b..166e60c61c4b85817836b415dd3d29777d639de5 100644
--- a/media/mtransport/third_party/nICEr/nicer.gyp
+++ b/media/mtransport/third_party/nICEr/nicer.gyp
@@ -187,6 +187,7 @@
               [ 'OS == "win"', {
                 'defines' : [
                     'WIN32',
+                    '_WINSOCK_DEPRECATED_NO_WARNINGS',
                     'USE_ICE',
                     'USE_TURN',
                     'USE_RFC_3489_BACKWARDS_COMPATIBLE',
diff --git a/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.c b/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.c
index 088ebf04590169f1ef9ddb12bbd7d26f77219237..bc5a792810f07e3c969b34f9d40b05d4d0c0e438 100644
--- a/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.c
+++ b/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.c
@@ -37,21 +37,21 @@ static char *RCSSTRING __UNUSED__="$Id: nr_crypto.c,v 1.2 2008/04/28 17:59:01 ek
 #include <nr_api.h>
 #include "nr_crypto.h"
 
-static int nr_ice_crypto_dummy_random_bytes(UCHAR *buf, int len)
+static int nr_ice_crypto_dummy_random_bytes(UCHAR *buf, size_t len)
   {
     fprintf(stderr,"Need to define crypto API implementation\n");
 
     exit(1);
   }
 
-static int nr_ice_crypto_dummy_hmac_sha1(UCHAR *key, int key_l, UCHAR *buf, int buf_l, UCHAR digest[20])
+static int nr_ice_crypto_dummy_hmac_sha1(UCHAR *key, size_t key_l, UCHAR *buf, size_t buf_l, UCHAR digest[20])
   {
     fprintf(stderr,"Need to define crypto API implementation\n");
 
     exit(1);
   }
 
-static int nr_ice_crypto_dummy_md5(UCHAR *buf, int buf_l, UCHAR digest[16])
+static int nr_ice_crypto_dummy_md5(UCHAR *buf, size_t buf_l, UCHAR digest[16])
   {
     fprintf(stderr,"Need to define crypto API implementation\n");
 
diff --git a/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.h b/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.h
index 4c71786f056bf90428758e2ff5c3739473ea10d8..5fbbd8f09724737e2097be2c3eaac493290bcdd6 100644
--- a/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.h
+++ b/media/mtransport/third_party/nICEr/src/crypto/nr_crypto.h
@@ -37,9 +37,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
 typedef struct nr_ice_crypto_vtbl_ {
-  int (*random_bytes)(UCHAR *buf, int len);
-  int (*hmac_sha1)(UCHAR *key, int key_l, UCHAR *buf, int buf_l, UCHAR digest[20]);
-  int (*md5)(UCHAR *buf, int buf_l, UCHAR digest[16]);
+  int (*random_bytes)(UCHAR *buf, size_t len);
+  int (*hmac_sha1)(UCHAR *key, size_t key_l, UCHAR *buf, size_t buf_l, UCHAR digest[20]);
+  int (*md5)(UCHAR *buf, size_t buf_l, UCHAR digest[16]);
 } nr_ice_crypto_vtbl;
 
 extern nr_ice_crypto_vtbl *nr_crypto_vtbl;
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_candidate.c b/media/mtransport/third_party/nICEr/src/ice/ice_candidate.c
index 445dcb529021b5e0d824aabf006dac59250a3c1f..7bebf9ab7c3d475d3d15faa4a5c73de2e5bf6efc 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_candidate.c
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_candidate.c
@@ -323,14 +323,14 @@ int nr_ice_candidate_destroy(nr_ice_candidate **candp)
       case RELAYED:
         // record stats back to the ice ctx on destruction
         if (cand->u.relayed.turn) {
-          nr_ice_accumulate_count(&(cand->ctx->stats.turn_401s), cand->u.relayed.turn->cnt_401s);
-          nr_ice_accumulate_count(&(cand->ctx->stats.turn_403s), cand->u.relayed.turn->cnt_403s);
-          nr_ice_accumulate_count(&(cand->ctx->stats.turn_438s), cand->u.relayed.turn->cnt_438s);
+          nr_accumulate_count(&(cand->ctx->stats.turn_401s), cand->u.relayed.turn->cnt_401s);
+          nr_accumulate_count(&(cand->ctx->stats.turn_403s), cand->u.relayed.turn->cnt_403s);
+          nr_accumulate_count(&(cand->ctx->stats.turn_438s), cand->u.relayed.turn->cnt_438s);
 
           nr_turn_stun_ctx* stun_ctx;
           stun_ctx = STAILQ_FIRST(&cand->u.relayed.turn->stun_ctxs);
           while (stun_ctx) {
-            nr_ice_accumulate_count(&(cand->ctx->stats.stun_retransmits), stun_ctx->stun->retransmit_ct);
+            nr_accumulate_count(&(cand->ctx->stats.stun_retransmits), stun_ctx->stun->retransmit_ct);
 
             stun_ctx = STAILQ_NEXT(stun_ctx, entry);
           }
@@ -380,7 +380,9 @@ static int nr_ice_get_foundation(nr_ice_ctx *ctx,nr_ice_candidate *cand)
     while(foundation){
       if(nr_transport_addr_cmp(&cand->base,&foundation->addr,NR_TRANSPORT_ADDR_CMP_MODE_ADDR))
         goto next;
-      if(cand->type != foundation->type)
+      // cast necessary because there is no guarantee that enum is signed.
+      // foundation->type should probably match nr_ice_candidate_type
+      if((int)cand->type != foundation->type)
         goto next;
       if(cand->stun_server != foundation->stun_server)
         goto next;
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_candidate_pair.c b/media/mtransport/third_party/nICEr/src/ice/ice_candidate_pair.c
index 0ac64353a8c0df4757403c64b24637658632e288..1ecfaf42fe202c315f3707bf780c2c7161e02212 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_candidate_pair.c
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_candidate_pair.c
@@ -154,7 +154,7 @@ int nr_ice_candidate_pair_destroy(nr_ice_cand_pair **pairp)
 
     // record stats back to the ice ctx on destruction
     if (pair->stun_client) {
-      nr_ice_accumulate_count(&(pair->local->ctx->stats.stun_retransmits), pair->stun_client->retransmit_ct);
+      nr_accumulate_count(&(pair->local->ctx->stats.stun_retransmits), pair->stun_client->retransmit_ct);
     }
 
     RFREE(pair->as_string);
@@ -357,6 +357,12 @@ static void nr_ice_candidate_pair_stun_cb(NR_SOCKET s, int how, void *cb_arg)
   done:
     _status=0;
   abort:
+    if (_status) {
+      // cb doesn't return anything, but we should probably log that we aborted
+      // This also quiets the unused variable warnings.
+      r_log(LOG_ICE,LOG_DEBUG,"ICE-PEER(%s)/STREAM(%s)/CAND-PAIR(%s): STUN cb pair addr = %s abort with status: %d",
+        pair->pctx->label,pair->local->stream->label,pair->codeword,pair->as_string, _status);
+    }
     return;
   }
 
@@ -640,6 +646,12 @@ void nr_ice_candidate_pair_restart_stun_nominated_cb(NR_SOCKET s, int how, void
 
     _status=0;
   abort:
+    if (_status) {
+      // cb doesn't return anything, but we should probably log that we aborted
+      // This also quiets the unused variable warnings.
+      r_log(LOG_ICE,LOG_DEBUG,"ICE-PEER(%s)/STREAM(%s)/CAND-PAIR(%s)/COMP(%d): STUN nominated cb pair as nominated: %s abort with status: %d",
+        pair->pctx->label,pair->local->stream->label,pair->codeword,pair->remote->component->component_id,pair->as_string, _status);
+    }
     return;
   }
 
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_component.c b/media/mtransport/third_party/nICEr/src/ice/ice_component.c
index a47bd30bdc2b1a9af22cb93bcbf3ebaeefa758c1..e5f265c0fb2d1f5806e00025a4c5c7b6689a7249 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_component.c
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_component.c
@@ -51,10 +51,16 @@ static char *RCSSTRING __UNUSED__="$Id: ice_component.c,v 1.2 2008/04/28 17:59:0
 #include "nr_crypto.h"
 #include "r_time.h"
 
+static void nr_ice_component_refresh_consent_cb(NR_SOCKET s, int how, void *cb_arg);
 static int nr_ice_component_stun_server_default_cb(void *cb_arg,nr_stun_server_ctx *stun_ctx,nr_socket *sock, nr_stun_server_request *req, int *dont_free, int *error);
 static int nr_ice_pre_answer_request_destroy(nr_ice_pre_answer_request **parp);
+int nr_ice_component_can_candidate_addr_pair(nr_transport_addr *local, nr_transport_addr *remote);
+int nr_ice_component_can_candidate_tcptype_pair(nr_socket_tcp_type left, nr_socket_tcp_type right);
+void nr_ice_component_consent_calc_consent_timer(nr_ice_component *comp);
 void nr_ice_component_consent_schedule_consent_timer(nr_ice_component *comp);
-void nr_ice_component_consent_destroy(nr_ice_component *comp);
+int nr_ice_component_refresh_consent(nr_stun_client_ctx *ctx, NR_async_cb finished_cb, void *cb_arg);
+int nr_ice_component_setup_consent(nr_ice_component *comp);
+int nr_ice_pre_answer_enqueue(nr_ice_component *comp, nr_socket *sock, nr_stun_server_request *req, int *dont_free);
 
 /* This function takes ownership of the contents of req (but not req itself) */
 static int nr_ice_pre_answer_request_create(nr_transport_addr *dst, nr_stun_server_request *req, nr_ice_pre_answer_request **parp)
@@ -813,7 +819,7 @@ static int nr_ice_component_handle_triggered_check(nr_ice_component *comp, nr_ic
 
     _status=0;
   abort:
-    return(r);
+    return(_status);
   }
 
 /* Section 7.2.1 */
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_component.h b/media/mtransport/third_party/nICEr/src/ice/ice_component.h
index 014119e13c3d5d1314b8437138ecea6c849c3947..3dc84cfe33e0b8699d8149a40591d2d43d971fd1 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_component.h
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_component.h
@@ -98,6 +98,7 @@ int nr_ice_component_set_failed(nr_ice_component *comp);
 int nr_ice_component_finalize(nr_ice_component *lcomp, nr_ice_component *rcomp);
 int nr_ice_component_insert_pair(nr_ice_component *pcomp, nr_ice_cand_pair *pair);
 int nr_ice_component_get_default_candidate(nr_ice_component *comp, nr_ice_candidate **candp, int ip_version);
+void nr_ice_component_consent_destroy(nr_ice_component *comp);
 void nr_ice_component_refresh_consent_now(nr_ice_component *comp);
 void nr_ice_component_disconnected(nr_ice_component *comp);
 
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_ctx.c b/media/mtransport/third_party/nICEr/src/ice/ice_ctx.c
index 41a854f092713f5ecc0fe5d77168a4e0656a1333..11f38abd524a095d4326386a7ecaae2c02797e2c 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_ctx.c
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_ctx.c
@@ -689,7 +689,7 @@ static int nr_ice_get_default_local_address(nr_ice_ctx *ctx, int ip_version, nr_
     if (i == addr_ct) {
       if ((r=nr_transport_addr_copy(&addrp->addr, &default_addr)))
         ABORT(r);
-      strlcpy(addrp->addr.ifname, "default route", sizeof(addrp->addr.ifname));
+      (void)strlcpy(addrp->addr.ifname, "default route", sizeof(addrp->addr.ifname));
     }
 
     _status=0;
@@ -914,7 +914,7 @@ int nr_ice_get_global_attributes(nr_ice_ctx *ctx,char ***attrsp, int *attrctp)
 static int nr_ice_random_string(char *str, int len)
   {
     unsigned char bytes[100];
-    int needed;
+    size_t needed;
     int r,_status;
 
     if(len%2) ABORT(R_BAD_ARGS);
@@ -1087,17 +1087,3 @@ int nr_ice_get_new_ice_pwd(char** pwd)
     }
     return(_status);
   }
-
-#ifndef UINT2_MAX
-#define UINT2_MAX ((UINT2)(65535U))
-#endif
-
-void nr_ice_accumulate_count(UINT2* orig_count, UINT2 new_count)
-  {
-    if (UINT2_MAX - new_count < *orig_count) {
-      // don't rollover, just stop accumulating at MAX value
-      *orig_count = UINT2_MAX;
-    } else {
-      *orig_count += new_count;
-    }
-  }
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_ctx.h b/media/mtransport/third_party/nICEr/src/ice/ice_ctx.h
index 1ac2386e3227fc472ada17b745662a904be2412d..8906fce868665c3b5e220f5f848c695597fcfb8d 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_ctx.h
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_ctx.h
@@ -199,8 +199,6 @@ int nr_ice_ctx_set_trickle_cb(nr_ice_ctx *ctx, nr_ice_trickle_candidate_cb cb, v
 int nr_ice_ctx_hide_candidate(nr_ice_ctx *ctx, nr_ice_candidate *cand);
 int nr_ice_get_new_ice_ufrag(char** ufrag);
 int nr_ice_get_new_ice_pwd(char** pwd);
-// accumulate a count without worrying about rollover
-void nr_ice_accumulate_count(UINT2* orig_count, UINT2 new_count);
 
 #define NR_ICE_MAX_ATTRIBUTE_SIZE 256
 
diff --git a/media/mtransport/third_party/nICEr/src/ice/ice_media_stream.c b/media/mtransport/third_party/nICEr/src/ice/ice_media_stream.c
index 7c96ce50ddc6216bcd7dd1b5231010853f7e2241..82ec9d3a4ea6e5d69fcdb7a20c9af42b25fe0f15 100644
--- a/media/mtransport/third_party/nICEr/src/ice/ice_media_stream.c
+++ b/media/mtransport/third_party/nICEr/src/ice/ice_media_stream.c
@@ -376,6 +376,12 @@ static void nr_ice_media_stream_check_timer_cb(NR_SOCKET s, int h, void *cb_arg)
 
     _status=0;
   abort:
+    if (_status) {
+      // cb doesn't return anything, but we should probably log that we aborted
+      // This also quiets the unused variable warnings.
+      r_log(LOG_ICE,LOG_DEBUG,"ICE-PEER(%s): check timer cb for media stream %s abort with status: %d",
+        stream->pctx->label,stream->label, _status);
+    }
     return;
   }
 
@@ -564,8 +570,8 @@ int nr_ice_media_stream_set_state(nr_ice_media_stream *str, int state)
     if (state == str->ice_state)
       return 0;
 
-    assert(state < sizeof(nr_ice_media_stream_states)/sizeof(char *));
-    assert(str->ice_state < sizeof(nr_ice_media_stream_states)/sizeof(char *));
+    assert((size_t)state < sizeof(nr_ice_media_stream_states)/sizeof(char *));
+    assert((size_t)str->ice_state < sizeof(nr_ice_media_stream_states)/sizeof(char *));
 
     r_log(LOG_ICE,LOG_DEBUG,"ICE-PEER(%s): stream %s state %s->%s",
       str->pctx->label,str->label,
diff --git a/media/mtransport/third_party/nICEr/src/net/nr_socket.h b/media/mtransport/third_party/nICEr/src/net/nr_socket.h
index 95f62e413e5016cefeb2faf45babde519f9dd272..8e7fbc6b4b8e541ec029dfbc4fd8be8218f4dadd 100644
--- a/media/mtransport/third_party/nICEr/src/net/nr_socket.h
+++ b/media/mtransport/third_party/nICEr/src/net/nr_socket.h
@@ -49,6 +49,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifdef __cplusplus
 #define restrict
 #elif defined(WIN32)
+/* Undef before defining to avoid a compiler warning */
+#undef restrict
 #define restrict __restrict
 #endif
 
diff --git a/media/mtransport/third_party/nICEr/src/net/transport_addr.c b/media/mtransport/third_party/nICEr/src/net/transport_addr.c
index a84b0ddf0dca1a6d913600270b62616f05d267cd..c05673b78d3d7c867057595aa17900485662a4ca 100644
--- a/media/mtransport/third_party/nICEr/src/net/transport_addr.c
+++ b/media/mtransport/third_party/nICEr/src/net/transport_addr.c
@@ -537,7 +537,7 @@ int nr_transport_addr_get_private_addr_range(nr_transport_addr *addr)
       case NR_IPV4:
         {
           UINT4 ip = ntohl(addr->u.addr4.sin_addr.s_addr);
-          for (int i=0; i<(sizeof(nr_private_ipv4_addrs)/sizeof(nr_transport_addr_mask)); i++) {
+          for (size_t i=0; i<(sizeof(nr_private_ipv4_addrs)/sizeof(nr_transport_addr_mask)); i++) {
             if ((ip & nr_private_ipv4_addrs[i].mask) == nr_private_ipv4_addrs[i].addr)
               return i + 1;
           }
diff --git a/media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c b/media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c
index 6a8a64bb90a444566cfc6c06755de101feef7bff..221d1ffc43e417ac46548859a166e0f596043fd5 100644
--- a/media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c
+++ b/media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c
@@ -114,8 +114,9 @@ nr_reg_get_transport_addr(NR_registry prefix, int keep, nr_transport_addr *addr)
     if ((r=nr_str_port_to_transport_addr(address?address:"0.0.0.0", port, p, addr)))
         ABORT(r);
 
-    if (ifname)
-        strlcpy(addr->ifname, ifname, sizeof(addr->ifname));
+    if (ifname) {
+        (void)strlcpy(addr->ifname, ifname, sizeof(addr->ifname));
+    }
 
     _status=0;
   abort:
diff --git a/media/mtransport/third_party/nICEr/src/stun/addrs.c b/media/mtransport/third_party/nICEr/src/stun/addrs.c
index f2c511445455df981f8b848d212e55ac0254e830..4f2f19b2137fe6046791c88f02407cf0037d2ecf 100644
--- a/media/mtransport/third_party/nICEr/src/stun/addrs.c
+++ b/media/mtransport/third_party/nICEr/src/stun/addrs.c
@@ -327,7 +327,7 @@ stun_getifaddrs(nr_local_addr addrs[], int maxaddrs, int *count)
             addrs[*count].interface.type = NR_INTERFACE_TYPE_UNKNOWN;
             addrs[*count].interface.estimated_speed = 0;
 #endif
-            strlcpy(addrs[*count].addr.ifname, if_addr->ifa_name, sizeof(addrs[*count].addr.ifname));
+            (void)strlcpy(addrs[*count].addr.ifname, if_addr->ifa_name, sizeof(addrs[*count].addr.ifname));
             ++(*count);
           }
           break;
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_build.c b/media/mtransport/third_party/nICEr/src/stun/stun_build.c
index b029501a721c3af95b9f242aaa5e3a4320025dba..ec30f82e15b40ba132e31a3ddcd78a5a4d97ccfd 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_build.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_build.c
@@ -308,7 +308,7 @@ nr_stun_compute_lt_message_integrity_password(const char *username, const char *
                                               Data *password, Data *hmac_key)
 {
   char digest_input[1000];
-  int i;
+  size_t i;
   int r, _status;
   size_t len;
 
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.c b/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.c
index fd9d0c21f6ca4f3f516a605bba693091e82baacb..ce545c38f54aad92c552356c878677743a9359b5 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.c
@@ -253,7 +253,7 @@ static void nr_stun_client_timer_expired_cb(NR_SOCKET s, int b, void *cb_arg)
         ABORT(R_NOT_PERMITTED);
 
     // track retransmits for ice telemetry
-    nr_ice_accumulate_count(&(ctx->retransmit_ct), 1);
+    nr_accumulate_count(&(ctx->retransmit_ct), 1);
 
     /* as a side effect will reset the timer */
     nr_stun_client_send_request(ctx);
@@ -269,6 +269,12 @@ static void nr_stun_client_timer_expired_cb(NR_SOCKET s, int b, void *cb_arg)
 
         nr_stun_client_fire_finished_cb(ctx);
     }
+    if (_status) {
+      // cb doesn't return anything, but we should probably log that we aborted
+      // This also quiets the unused variable warnings.
+      r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-CLIENT(%s): Timer expired cb abort with status: %d",
+        ctx->label, _status);
+    }
     return;
   }
 
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h b/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h
index 93abbded04bb826664061b73341efb7b516055d7..53f5db2113b8597cd274e156fd1dc11e2b5ebfa1 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_client_ctx.h
@@ -167,7 +167,7 @@ struct nr_stun_client_ctx_ {
   char *nonce;
   char *realm;
   void *timer_handle;
-  int request_ct;
+  UINT2 request_ct;
   UINT2 retransmit_ct;
   UINT4 rto_ms;    /* retransmission time out */
   double retransmission_backoff_factor;
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_codec.c b/media/mtransport/third_party/nICEr/src/stun/stun_codec.c
index 93927c8823c3a45521035fad98a939fcea7e5fa6..68bcfa7767b32c02b536e5a64a49e891244c5c0f 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_codec.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_codec.c
@@ -62,29 +62,29 @@ static int nr_stun_find_attr_info(UINT2 type, nr_stun_attr_info **info);
 
 static int nr_stun_fix_attribute_ordering(nr_stun_message *msg);
 
-static int nr_stun_encode_htons(UINT2 data, int buflen, UCHAR *buf, int *offset);
-static int nr_stun_encode_htonl(UINT4 data, int buflen, UCHAR *buf, int *offset);
-static int nr_stun_encode_htonll(UINT8 data, int buflen, UCHAR *buf, int *offset);
-static int nr_stun_encode(UCHAR *data, int length, int buflen, UCHAR *buf, int *offset);
-
-static int nr_stun_decode_htons(UCHAR *buf, int buflen, int *offset, UINT2 *data);
-static int nr_stun_decode_htonl(UCHAR *buf, int buflen, int *offset, UINT4 *data);
-static int nr_stun_decode_htonll(UCHAR *buf, int buflen, int *offset, UINT8 *data);
-static int nr_stun_decode(int length, UCHAR *buf, int buflen, int *offset, UCHAR *data);
-
-static int nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, int len, void *data, int max_bytes, int max_chars);
-
-static int nr_stun_attr_error_code_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data);
-static int nr_stun_attr_nonce_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data);
-static int nr_stun_attr_realm_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data);
-static int nr_stun_attr_server_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data);
-static int nr_stun_attr_username_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data);
+static int nr_stun_encode_htons(UINT2 data, size_t buflen, UCHAR *buf, size_t *offset);
+static int nr_stun_encode_htonl(UINT4 data, size_t buflen, UCHAR *buf, size_t *offset);
+static int nr_stun_encode_htonll(UINT8 data, size_t buflen, UCHAR *buf, size_t *offset);
+static int nr_stun_encode(UCHAR *data, size_t length, size_t buflen, UCHAR *buf, size_t *offset);
+
+static int nr_stun_decode_htons(UCHAR *buf, size_t buflen, size_t *offset, UINT2 *data);
+static int nr_stun_decode_htonl(UCHAR *buf, size_t buflen, size_t *offset, UINT4 *data);
+static int nr_stun_decode_htonll(UCHAR *buf, size_t buflen, size_t *offset, UINT8 *data);
+static int nr_stun_decode(size_t length, UCHAR *buf, size_t buflen, size_t *offset, UCHAR *data);
+
+static int nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, size_t len, void *data, size_t max_bytes, size_t max_chars);
+
+static int nr_stun_attr_error_code_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
+static int nr_stun_attr_nonce_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
+static int nr_stun_attr_realm_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
+static int nr_stun_attr_server_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
+static int nr_stun_attr_username_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
 static int
-nr_stun_attr_codec_fingerprint_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data);
+nr_stun_attr_codec_fingerprint_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data);
 
 
 int
-nr_stun_encode_htons(UINT2 data, int buflen, UCHAR *buf, int *offset)
+nr_stun_encode_htons(UINT2 data, size_t buflen, UCHAR *buf, size_t *offset)
 {
    UINT2 d = htons(data);
 
@@ -100,7 +100,7 @@ nr_stun_encode_htons(UINT2 data, int buflen, UCHAR *buf, int *offset)
 }
 
 int
-nr_stun_encode_htonl(UINT4 data, int buflen, UCHAR *buf, int *offset)
+nr_stun_encode_htonl(UINT4 data, size_t buflen, UCHAR *buf, size_t *offset)
 {
    UINT4 d = htonl(data);
 
@@ -116,7 +116,7 @@ nr_stun_encode_htonl(UINT4 data, int buflen, UCHAR *buf, int *offset)
 }
 
 int
-nr_stun_encode_htonll(UINT8 data, int buflen, UCHAR *buf, int *offset)
+nr_stun_encode_htonll(UINT8 data, size_t buflen, UCHAR *buf, size_t *offset)
 {
    UINT8 d = nr_htonll(data);
 
@@ -132,7 +132,7 @@ nr_stun_encode_htonll(UINT8 data, int buflen, UCHAR *buf, int *offset)
 }
 
 int
-nr_stun_encode(UCHAR *data, int length, int buflen, UCHAR *buf, int *offset)
+nr_stun_encode(UCHAR *data, size_t length, size_t buflen, UCHAR *buf, size_t *offset)
 {
    if (*offset + length > buflen) {
       r_log(NR_LOG_STUN, LOG_WARNING, "Attempted buffer overrun: %d + %d > %d", *offset, length, buflen);
@@ -147,7 +147,7 @@ nr_stun_encode(UCHAR *data, int length, int buflen, UCHAR *buf, int *offset)
 
 
 int
-nr_stun_decode_htons(UCHAR *buf, int buflen, int *offset, UINT2 *data)
+nr_stun_decode_htons(UCHAR *buf, size_t buflen, size_t *offset, UINT2 *data)
 {
    UINT2 d;
 
@@ -164,7 +164,7 @@ nr_stun_decode_htons(UCHAR *buf, int buflen, int *offset, UINT2 *data)
 }
 
 int
-nr_stun_decode_htonl(UCHAR *buf, int buflen, int *offset, UINT4 *data)
+nr_stun_decode_htonl(UCHAR *buf, size_t buflen, size_t *offset, UINT4 *data)
 {
    UINT4 d;
 
@@ -181,7 +181,7 @@ nr_stun_decode_htonl(UCHAR *buf, int buflen, int *offset, UINT4 *data)
 }
 
 int
-nr_stun_decode_htonll(UCHAR *buf, int buflen, int *offset, UINT8 *data)
+nr_stun_decode_htonll(UCHAR *buf, size_t buflen, size_t *offset, UINT8 *data)
 {
    UINT8 d;
 
@@ -198,7 +198,7 @@ nr_stun_decode_htonll(UCHAR *buf, int buflen, int *offset, UINT8 *data)
 }
 
 int
-nr_stun_decode(int length, UCHAR *buf, int buflen, int *offset, UCHAR *data)
+nr_stun_decode(size_t length, UCHAR *buf, size_t buflen, size_t *offset, UCHAR *data)
 {
    if (*offset + length > buflen) {
       r_log(NR_LOG_STUN, LOG_WARNING, "Attempted buffer overrun: %d + %d > %d", *offset, length, buflen);
@@ -237,7 +237,7 @@ nr_count_utf8_code_points_without_validation(const char *s) {
 }
 
 int
-nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, int len, void *data, int max_bytes, int max_chars)
+nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, size_t len, void *data, size_t max_bytes, size_t max_chars)
 {
     int _status;
     char *s = data;
@@ -248,12 +248,10 @@ nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, int len, void *data, i
         ABORT(R_FAILED);
     }
 
-    if (max_chars >= 0) {
-        nchars = nr_count_utf8_code_points_without_validation(s);
-        if (nchars > max_chars) {
-            r_log(NR_LOG_STUN, LOG_WARNING, "%s is too large: %zd characters", attr_info->name, nchars);
-            ABORT(R_FAILED);
-        }
+    nchars = nr_count_utf8_code_points_without_validation(s);
+    if (nchars > max_chars) {
+        r_log(NR_LOG_STUN, LOG_WARNING, "%s is too large: %zd characters", attr_info->name, nchars);
+        ABORT(R_FAILED);
     }
 
     _status = 0;
@@ -262,7 +260,7 @@ nr_stun_attr_string_illegal(nr_stun_attr_info *attr_info, int len, void *data, i
 }
 
 int
-nr_stun_attr_error_code_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data)
+nr_stun_attr_error_code_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data)
 {
     int r,_status;
     nr_stun_attr_error_code *ec = data;
@@ -279,25 +277,25 @@ nr_stun_attr_error_code_illegal(nr_stun_attr_info *attr_info, int attrlen, void
 }
 
 int
-nr_stun_attr_nonce_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data)
+nr_stun_attr_nonce_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data)
 {
     return nr_stun_attr_string_illegal(attr_info, attrlen, data, NR_STUN_MAX_NONCE_BYTES, NR_STUN_MAX_NONCE_CHARS);
 }
 
 int
-nr_stun_attr_realm_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data)
+nr_stun_attr_realm_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data)
 {
     return nr_stun_attr_string_illegal(attr_info, attrlen, data, NR_STUN_MAX_REALM_BYTES, NR_STUN_MAX_REALM_CHARS);
 }
 
 int
-nr_stun_attr_server_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data)
+nr_stun_attr_server_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data)
 {
     return nr_stun_attr_string_illegal(attr_info, attrlen, data, NR_STUN_MAX_SERVER_BYTES, NR_STUN_MAX_SERVER_CHARS);
 }
 
 int
-nr_stun_attr_username_illegal(nr_stun_attr_info *attr_info, int attrlen, void *data)
+nr_stun_attr_username_illegal(nr_stun_attr_info *attr_info, size_t attrlen, void *data)
 {
     return nr_stun_attr_string_illegal(attr_info, attrlen, data, NR_STUN_MAX_USERNAME_BYTES, -1);
 }
@@ -310,7 +308,7 @@ nr_stun_attr_codec_UCHAR_print(nr_stun_attr_info *attr_info, char *msg, void *da
 }
 
 static int
-nr_stun_attr_codec_UCHAR_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_UCHAR_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
     UINT4 tmp = *((UCHAR *)data);
@@ -327,7 +325,7 @@ nr_stun_attr_codec_UCHAR_encode(nr_stun_attr_info *attr_info, void *data, int of
 }
 
 static int
-nr_stun_attr_codec_UCHAR_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_UCHAR_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     UINT4 tmp;
 
@@ -359,7 +357,7 @@ nr_stun_attr_codec_UINT4_print(nr_stun_attr_info *attr_info, char *msg, void *da
 }
 
 static int
-nr_stun_attr_codec_UINT4_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_UINT4_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
 
@@ -374,7 +372,7 @@ nr_stun_attr_codec_UINT4_encode(nr_stun_attr_info *attr_info, void *data, int of
 }
 
 static int
-nr_stun_attr_codec_UINT4_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_UINT4_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     if (attrlen != sizeof(UINT4)) {
         r_log(NR_LOG_STUN, LOG_WARNING, "Integer is illegal size: %d", attrlen);
@@ -402,7 +400,7 @@ nr_stun_attr_codec_UINT8_print(nr_stun_attr_info *attr_info, char *msg, void *da
 }
 
 static int
-nr_stun_attr_codec_UINT8_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_UINT8_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
 
@@ -417,7 +415,7 @@ nr_stun_attr_codec_UINT8_encode(nr_stun_attr_info *attr_info, void *data, int of
 }
 
 static int
-nr_stun_attr_codec_UINT8_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_UINT8_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     if (attrlen != sizeof(UINT8)) {
         r_log(NR_LOG_STUN, LOG_WARNING, "Integer is illegal size: %d", attrlen);
@@ -445,7 +443,7 @@ nr_stun_attr_codec_addr_print(nr_stun_attr_info *attr_info, char *msg, void *dat
 }
 
 static int
-nr_stun_attr_codec_addr_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_addr_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int r,_status;
     int start = offset;
@@ -491,7 +489,7 @@ nr_stun_attr_codec_addr_encode(nr_stun_attr_info *attr_info, void *data, int off
 }
 
 static int
-nr_stun_attr_codec_addr_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_addr_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     UCHAR pad;
@@ -561,7 +559,7 @@ nr_stun_attr_codec_data_print(nr_stun_attr_info *attr_info, char *msg, void *dat
 }
 
 static int
-nr_stun_attr_codec_data_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_data_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     nr_stun_attr_data *d = data;
     int start = offset;
@@ -577,7 +575,7 @@ nr_stun_attr_codec_data_encode(nr_stun_attr_info *attr_info, void *data, int off
 }
 
 static int
-nr_stun_attr_codec_data_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_data_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     nr_stun_attr_data *result = data;
@@ -617,7 +615,7 @@ nr_stun_attr_codec_error_code_print(nr_stun_attr_info *attr_info, char *msg, voi
 }
 
 static int
-nr_stun_attr_codec_error_code_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_error_code_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     nr_stun_attr_error_code *error_code = data;
     int start = offset;
@@ -640,14 +638,14 @@ nr_stun_attr_codec_error_code_encode(nr_stun_attr_info *attr_info, void *data, i
 }
 
 static int
-nr_stun_attr_codec_error_code_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_error_code_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     nr_stun_attr_error_code *result = data;
     UCHAR pad[2];
     UCHAR class;
     UCHAR number;
-    int size_reason;
+    size_t size_reason;
 
     if (nr_stun_decode(2, buf, buflen, &offset, pad)
      || nr_stun_decode(1, buf, buflen, &offset, &class)
@@ -690,7 +688,7 @@ nr_stun_attr_codec_fingerprint_print(nr_stun_attr_info *attr_info, char *msg, vo
 }
 
 static int
-nr_stun_attr_codec_fingerprint_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_fingerprint_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     UINT4 checksum;
     nr_stun_attr_fingerprint *fingerprint = data;
@@ -716,12 +714,12 @@ nr_stun_attr_codec_fingerprint_encode(nr_stun_attr_info *attr_info, void *data,
 }
 
 static int
-nr_stun_attr_codec_fingerprint_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_fingerprint_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int r,_status;
     nr_stun_attr_fingerprint *fingerprint = data;
     nr_stun_message_header *header = (nr_stun_message_header*)buf;
-    int length;
+    size_t length;
     UINT4 checksum;
 
     if ((r=nr_stun_attr_codec_UINT4.decode(attr_info, attrlen, buf, offset, buflen, &fingerprint->checksum)))
@@ -773,7 +771,7 @@ nr_stun_attr_codec_flag_print(nr_stun_attr_info *attr_info, char *msg, void *dat
 }
 
 static int
-nr_stun_attr_codec_flag_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_flag_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
 
@@ -787,7 +785,7 @@ nr_stun_attr_codec_flag_encode(nr_stun_attr_info *attr_info, void *data, int off
 }
 
 static int
-nr_stun_attr_codec_flag_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_flag_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     if (attrlen != 0) {
         r_log(NR_LOG_STUN, LOG_WARNING, "Illegal flag length: %d", attrlen);
@@ -844,7 +842,7 @@ nr_stun_compute_message_integrity(UCHAR *buf, int offset, UCHAR *password, int p
 }
 
 static int
-nr_stun_attr_codec_message_integrity_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_message_integrity_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
     nr_stun_attr_message_integrity *integrity = data;
@@ -863,7 +861,7 @@ nr_stun_attr_codec_message_integrity_encode(nr_stun_attr_info *attr_info, void *
 }
 
 static int
-nr_stun_attr_codec_message_integrity_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_message_integrity_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     int start;
@@ -909,7 +907,7 @@ nr_stun_attr_codec nr_stun_attr_codec_message_integrity = {
 };
 
 static int
-nr_stun_attr_codec_noop_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_noop_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     return SKIP_ATTRIBUTE_DECODE;
 }
@@ -930,7 +928,7 @@ nr_stun_attr_codec_quoted_string_print(nr_stun_attr_info *attr_info, char *msg,
 }
 
 static int
-nr_stun_attr_codec_quoted_string_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_quoted_string_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
 //TODO: !nn! syntax check, conversion if not quoted already?
 //We'll just restrict this in the API -- EKR
@@ -938,7 +936,7 @@ nr_stun_attr_codec_quoted_string_encode(nr_stun_attr_info *attr_info, void *data
 }
 
 static int
-nr_stun_attr_codec_quoted_string_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_quoted_string_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
 //TODO: !nn! I don't see any need to unquote this but we may
 //find one later -- EKR
@@ -961,7 +959,7 @@ nr_stun_attr_codec_string_print(nr_stun_attr_info *attr_info, char *msg, void *d
 }
 
 static int
-nr_stun_attr_codec_string_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_string_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int start = offset;
     char *str = data;
@@ -978,7 +976,7 @@ nr_stun_attr_codec_string_encode(nr_stun_attr_info *attr_info, void *data, int o
 }
 
 static int
-nr_stun_attr_codec_string_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_string_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     char *result = data;
@@ -1033,7 +1031,7 @@ nr_stun_attr_codec_unknown_attributes_print(nr_stun_attr_info *attr_info, char *
 }
 
 static int
-nr_stun_attr_codec_unknown_attributes_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_unknown_attributes_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     int _status;
     int start = offset;
@@ -1063,7 +1061,7 @@ nr_stun_attr_codec_unknown_attributes_encode(nr_stun_attr_info *attr_info, void
 }
 
 static int
-nr_stun_attr_codec_unknown_attributes_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_unknown_attributes_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int _status;
     nr_stun_attr_unknown_attributes *unknown_attributes = data;
@@ -1112,7 +1110,7 @@ nr_stun_attr_codec_xor_mapped_address_print(nr_stun_attr_info *attr_info, char *
 }
 
 static int
-nr_stun_attr_codec_xor_mapped_address_encode(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen)
+nr_stun_attr_codec_xor_mapped_address_encode(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen)
 {
     nr_stun_attr_xor_mapped_address *xor_mapped_address = data;
     nr_stun_message_header *header = (nr_stun_message_header*)buf;
@@ -1137,7 +1135,7 @@ nr_stun_attr_codec_xor_mapped_address_encode(nr_stun_attr_info *attr_info, void
 }
 
 static int
-nr_stun_attr_codec_xor_mapped_address_decode(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data)
+nr_stun_attr_codec_xor_mapped_address_decode(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data)
 {
     int r,_status;
     nr_stun_attr_xor_mapped_address *xor_mapped_address = data;
@@ -1239,7 +1237,7 @@ int
 nr_stun_find_attr_info(UINT2 type, nr_stun_attr_info **info)
 {
     int _status;
-    int i;
+    size_t i;
 
     *info = 0;
     for (i = 0; i < sizeof(attrs)/sizeof(*attrs); ++i) {
@@ -1278,6 +1276,13 @@ nr_stun_fix_attribute_ordering(nr_stun_message *msg)
     return 0;
 }
 
+// Since this sanity check is only a collection of assert statements and those
+// assert statements are compiled out in non-debug builds, undef SANITY_CHECKS
+// so we can avoid the warning that padding_bytes is never used in opt builds.
+#ifdef NDEBUG
+#undef SANITY_CHECKS
+#endif
+
 #ifdef SANITY_CHECKS
 static void sanity_check_encoding_stuff(nr_stun_message *msg)
 {
@@ -1307,8 +1312,8 @@ int
 nr_stun_encode_message(nr_stun_message *msg)
 {
     int r,_status;
-    int length_offset;
-    int length_offset_hold;
+    size_t length_offset;
+    size_t length_offset_hold;
     nr_stun_attr_info *attr_info;
     nr_stun_message_attribute *attr;
     int padding_bytes;
@@ -1471,7 +1476,7 @@ nr_stun_decode_message(nr_stun_message *msg, int (*get_password)(void *arg, nr_s
             attr->encoding_length += padding_bytes;
         }
 
-        if ((attr->encoding_length) > size) {
+        if ((attr->encoding_length) > (size_t)size) {
            r_log(NR_LOG_STUN, LOG_WARNING, "Attribute length larger than remaining message size: %d/%d", attr->encoding_length, size);
            ABORT(R_FAILED);
         }
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_codec.h b/media/mtransport/third_party/nICEr/src/stun/stun_codec.h
index 689d68fb62f41ce0f01d8ccf473ec1ebfa148b61..4e4ff60e0c29c60a4e1ff5766ffe8dfda42e77ed 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_codec.h
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_codec.h
@@ -42,15 +42,15 @@ typedef struct nr_stun_attr_info_  nr_stun_attr_info;
 typedef struct nr_stun_attr_codec_ {
     char     *name;
     int     (*print)(nr_stun_attr_info *attr_info, char *msg, void *data);
-    int     (*encode)(nr_stun_attr_info *attr_info, void *data, int offset, int buflen, UCHAR *buf, int *attrlen);
-    int     (*decode)(nr_stun_attr_info *attr_info, int attrlen, UCHAR *buf, int offset, int buflen, void *data);
+    int     (*encode)(nr_stun_attr_info *attr_info, void *data, size_t offset, size_t buflen, UCHAR *buf, size_t *attrlen);
+    int     (*decode)(nr_stun_attr_info *attr_info, size_t attrlen, UCHAR *buf, size_t offset, size_t buflen, void *data);
 } nr_stun_attr_codec;
 
 struct nr_stun_attr_info_ {
      UINT2                 type;
      char                 *name;
      nr_stun_attr_codec   *codec;
-     int                 (*illegal)(nr_stun_attr_info *attr_info, int attrlen, void *data);
+     int                 (*illegal)(nr_stun_attr_info *attr_info, size_t attrlen, void *data);
 };
 
 extern nr_stun_attr_codec nr_stun_attr_codec_UINT4;
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_hint.c b/media/mtransport/third_party/nICEr/src/stun/stun_hint.c
index 941b14d64b017c2d0daedcf41317faa8e1e16892..40ba7ca39a4d59c3088cd04e0907c5f9f617cc5c 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_hint.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_hint.c
@@ -55,7 +55,7 @@ static char *RCSSTRING __UNUSED__="$Id: stun_hint.c,v 1.2 2008/04/28 18:21:30 ek
  *         2 if it's super likely to be a STUN message
  *         3 if it really is a STUN message */
 int
-nr_is_stun_message(UCHAR *buf, int len)
+nr_is_stun_message(UCHAR *buf, size_t len)
 {
    const UINT4 cookie = htonl(NR_STUN_MAGIC_COOKIE);
    const UINT4 cookie2 = htonl(NR_STUN_MAGIC_COOKIE2);
@@ -163,7 +163,7 @@ nr_is_stun_message(UCHAR *buf, int len)
 }
 
 int
-nr_is_stun_request_message(UCHAR *buf, int len)
+nr_is_stun_request_message(UCHAR *buf, size_t len)
 {
    UINT2 type;
 
@@ -180,7 +180,7 @@ nr_is_stun_request_message(UCHAR *buf, int len)
 }
 
 int
-nr_is_stun_indication_message(UCHAR *buf, int len)
+nr_is_stun_indication_message(UCHAR *buf, size_t len)
 {
    UINT2 type;
 
@@ -197,7 +197,7 @@ nr_is_stun_indication_message(UCHAR *buf, int len)
 }
 
 int
-nr_is_stun_response_message(UCHAR *buf, int len)
+nr_is_stun_response_message(UCHAR *buf, size_t len)
 {
    UINT2 type;
 
@@ -215,7 +215,7 @@ nr_is_stun_response_message(UCHAR *buf, int len)
 }
 
 int
-nr_has_stun_cookie(UCHAR *buf, int len)
+nr_has_stun_cookie(UCHAR *buf, size_t len)
 {
    static UINT4 cookie;
 
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_hint.h b/media/mtransport/third_party/nICEr/src/stun/stun_hint.h
index 4b285d31d71084f3f1d20d1b97d5bcc98821cace..c2badc1d2b36e4ecc7d0a21e1fac07be51ebe274 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_hint.h
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_hint.h
@@ -34,11 +34,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef _stun_hint_h
 #define _stun_hint_h
 
-int nr_is_stun_message(UCHAR *buf, int len);
-int nr_is_stun_request_message(UCHAR *buf, int len);
-int nr_is_stun_response_message(UCHAR *buf, int len);
-int nr_is_stun_indication_message(UCHAR *buf, int len);
-int nr_has_stun_cookie(UCHAR *buf, int len);
+int nr_is_stun_message(UCHAR *buf, size_t len);
+int nr_is_stun_request_message(UCHAR *buf, size_t len);
+int nr_is_stun_response_message(UCHAR *buf, size_t len);
+int nr_is_stun_indication_message(UCHAR *buf, size_t len);
+int nr_has_stun_cookie(UCHAR *buf, size_t len);
 int nr_stun_message_length(UCHAR *buf, int len, int *length);
 
 #endif
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_msg.c b/media/mtransport/third_party/nICEr/src/stun/stun_msg.c
index c34bb46b04eff2e878589a688acfe5e524e6e8e5..38d0dd487babc697e80a58532be2bbc7a4a7491d 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_msg.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_msg.c
@@ -69,7 +69,7 @@ nr_stun_message_create(nr_stun_message **msg)
 }
 
 int
-nr_stun_message_create2(nr_stun_message **msg, UCHAR *buffer, int length)
+nr_stun_message_create2(nr_stun_message **msg, UCHAR *buffer, size_t length)
 {
     int r,_status;
     nr_stun_message *m = 0;
@@ -209,7 +209,7 @@ NR_STUN_MESSAGE_ADD_ATTRIBUTE(
     NR_STUN_ATTR_ERROR_CODE,
     {
         attr->u.error_code.number = number;
-        strlcpy(attr->u.error_code.reason, reason, sizeof(attr->u.error_code.reason));
+        (void)strlcpy(attr->u.error_code.reason, reason, sizeof(attr->u.error_code.reason));
     }
 )
 
@@ -237,21 +237,21 @@ int
 nr_stun_message_add_nonce_attribute(nr_stun_message *msg, char *nonce)
 NR_STUN_MESSAGE_ADD_ATTRIBUTE(
     NR_STUN_ATTR_NONCE,
-    { strlcpy(attr->u.nonce, nonce, sizeof(attr->u.nonce)); }
+    { (void)strlcpy(attr->u.nonce, nonce, sizeof(attr->u.nonce)); }
 )
 
 int
 nr_stun_message_add_realm_attribute(nr_stun_message *msg, char *realm)
 NR_STUN_MESSAGE_ADD_ATTRIBUTE(
     NR_STUN_ATTR_REALM,
-    { strlcpy(attr->u.realm, realm, sizeof(attr->u.realm)); }
+    { (void)strlcpy(attr->u.realm, realm, sizeof(attr->u.realm)); }
 )
 
 int
 nr_stun_message_add_server_attribute(nr_stun_message *msg, char *server_name)
 NR_STUN_MESSAGE_ADD_ATTRIBUTE(
     NR_STUN_ATTR_SERVER,
-    { strlcpy(attr->u.server_name, server_name, sizeof(attr->u.server_name)); }
+    { (void)strlcpy(attr->u.server_name, server_name, sizeof(attr->u.server_name)); }
 )
 
 int
@@ -265,7 +265,7 @@ int
 nr_stun_message_add_username_attribute(nr_stun_message *msg, char *username)
 NR_STUN_MESSAGE_ADD_ATTRIBUTE(
     NR_STUN_ATTR_USERNAME,
-    { strlcpy(attr->u.username, username, sizeof(attr->u.username)); }
+    { (void)strlcpy(attr->u.username, username, sizeof(attr->u.username)); }
 )
 
 int
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_msg.h b/media/mtransport/third_party/nICEr/src/stun/stun_msg.h
index 927ce2e3c68122ec51b574174a078911b341515e..a943698c36ce9645f4ab9b8cfd96673c700d51a5 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_msg.h
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_msg.h
@@ -87,7 +87,7 @@ typedef struct nr_stun_attr_xor_mapped_address_ {
 
 typedef struct nr_stun_attr_data_ {
     UCHAR  data[NR_STUN_MAX_MESSAGE_SIZE];
-    int    length;
+    size_t length;
 } nr_stun_attr_data;
 
 
@@ -137,7 +137,7 @@ typedef struct nr_stun_message_attribute_ {
         UCHAR                           largest_possible_attribute[NR_STUN_MAX_MESSAGE_SIZE];
     } u;
     nr_stun_encoded_attribute          *encoding;
-    int                                 encoding_length;
+    size_t                              encoding_length;
     char                               *name;
     char                               *type_name;
     int                                 invalid;
@@ -156,7 +156,7 @@ typedef struct nr_stun_message_header_ {
 typedef struct nr_stun_message_ {
     char                               *name;
     UCHAR                               buffer[NR_STUN_MAX_MESSAGE_SIZE];
-    int                                 length;
+    size_t                              length;
     nr_stun_message_header              header;
     int                                 comprehension_required_unknown_attributes;
     int                                 comprehension_optional_unknown_attributes;
@@ -164,7 +164,7 @@ typedef struct nr_stun_message_ {
 } nr_stun_message;
 
 int nr_stun_message_create(nr_stun_message **msg);
-int nr_stun_message_create2(nr_stun_message **msg, UCHAR *buffer, int length);
+int nr_stun_message_create2(nr_stun_message **msg, UCHAR *buffer, size_t length);
 int nr_stun_message_destroy(nr_stun_message **msg);
 
 int nr_stun_message_attribute_create(nr_stun_message *msg, nr_stun_message_attribute **attr);
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_server_ctx.c b/media/mtransport/third_party/nICEr/src/stun/stun_server_ctx.c
index 3bfa1674b28ddc62dda63d2600d3d486c38dcf7d..eff4ec7a1431885df75d7456f8c30dcd194662be 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_server_ctx.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_server_ctx.c
@@ -386,18 +386,10 @@ int nr_stun_server_process_request(nr_stun_server_ctx *ctx, nr_socket *sock, cha
 static int nr_stun_server_send_response(nr_stun_server_ctx *ctx, nr_socket *sock, nr_transport_addr *peer_addr, nr_stun_message *res, nr_stun_server_client *clnt)
   {
     int r,_status;
-    Data *hmacPassword;
     char string[256];
 
     r_log(NR_LOG_STUN,LOG_DEBUG,"STUN-SERVER(label=%s): Sending(my_addr=%s,peer_addr=%s)",ctx->label,ctx->my_addr.as_string,peer_addr->as_string);
 
-    if (clnt) {
-        hmacPassword = &clnt->password;
-    }
-    else {
-        hmacPassword = 0;
-    }
-
     if ((r=nr_stun_encode_message(res))) {
         /* should never happen */
         r_log(NR_LOG_STUN,LOG_ERR,"STUN-SERVER(label=%s): Unable to encode message", ctx->label);
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_util.c b/media/mtransport/third_party/nICEr/src/stun/stun_util.c
index a5f79bea5c8d1897561d5ed8fc5b8ec4da1d5438..e5fa66bc773b5837308864bb31d85cd20c67562c 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_util.c
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_util.c
@@ -94,7 +94,7 @@ nr_stun_xor_mapped_address(UINT4 magicCookie, UINT12 transactionId, nr_transport
 
           /* We now have the mask in network byte order */
           /* Xor the address in network byte order */
-          for (int i = 0; i < sizeof(maskedAddr); ++i) {
+          for (size_t i = 0; i < sizeof(maskedAddr); ++i) {
             maskedAddr.addr[i] ^= from->u.addr6.sin6_addr.s6_addr[i];
           }
 
@@ -206,7 +206,7 @@ nr_stun_find_local_addresses(nr_local_addr addrs[], int maxaddrs, int *count)
 }
 
 int
-nr_stun_different_transaction(UCHAR *msg, int len, nr_stun_message *req)
+nr_stun_different_transaction(UCHAR *msg, size_t len, nr_stun_message *req)
 {
     int _status;
     nr_stun_message_header header;
@@ -339,3 +339,17 @@ nr_random_alphanum(char *alphanum, int size)
 
     return 0;
 }
+
+#ifndef UINT2_MAX
+#define UINT2_MAX ((UINT2)(65535U))
+#endif
+
+void nr_accumulate_count(UINT2* orig_count, UINT2 add_count)
+  {
+    if (UINT2_MAX - add_count < *orig_count) {
+      // don't rollover, just stop accumulating at MAX value
+      *orig_count = UINT2_MAX;
+    } else {
+      *orig_count += add_count;
+    }
+  }
diff --git a/media/mtransport/third_party/nICEr/src/stun/stun_util.h b/media/mtransport/third_party/nICEr/src/stun/stun_util.h
index 627b1d1b139e7436edb1f43c59b15a66e58ce779..379b4fdd3dc1cc5ae110b0eabd28f0346f23e8ce 100644
--- a/media/mtransport/third_party/nICEr/src/stun/stun_util.h
+++ b/media/mtransport/third_party/nICEr/src/stun/stun_util.h
@@ -49,11 +49,14 @@ int nr_stun_filter_local_addresses(nr_local_addr addrs[], int *count);
 
 int nr_stun_find_local_addresses(nr_local_addr addrs[], int maxaddrs, int *count);
 
-int nr_stun_different_transaction(UCHAR *msg, int len, nr_stun_message *req);
+int nr_stun_different_transaction(UCHAR *msg, size_t len, nr_stun_message *req);
 
 char* nr_stun_msg_type(int type);
 
 int nr_random_alphanum(char *alphanum, int size);
 
+// accumulate a count without worrying about rollover
+void nr_accumulate_count(UINT2* orig_count, UINT2 add_count);
+
 #endif
 
diff --git a/media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c b/media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c
index ebdc2498877bdb318ffa02f4f309b366faf46280..6dc4e74a12282e01f42f9399e972564a7a2b5252 100644
--- a/media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c
+++ b/media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c
@@ -257,13 +257,13 @@ static void nr_turn_stun_ctx_cb(NR_SOCKET s, int how, void *arg)
       /* TODO(ekr@rtfm.com): Add alternate-server (Mozilla bug 857688) */
       if (ctx->stun->error_code == 438) {
         // track 438s for ice telemetry
-        nr_ice_accumulate_count(&(ctx->tctx->cnt_438s), 1);
+        nr_accumulate_count(&(ctx->tctx->cnt_438s), 1);
       }
       if (ctx->stun->error_code == 401 || ctx->stun->error_code == 438) {
         if (ctx->retry_ct > 0) {
           if (ctx->stun->error_code == 401) {
             // track 401s for ice telemetry
-            nr_ice_accumulate_count(&(ctx->tctx->cnt_401s), 1);
+            nr_accumulate_count(&(ctx->tctx->cnt_401s), 1);
           }
           r_log(NR_LOG_TURN, LOG_WARNING, "TURN(%s): Exceeded the number of retries", ctx->tctx->label);
           ABORT(R_FAILED);
@@ -615,7 +615,7 @@ static void nr_turn_client_permission_error_cb(NR_SOCKET s, int how, void *arg)
 
   if (ctx->last_error_code == 403) {
     // track 403s for ice telemetry
-    nr_ice_accumulate_count(&(ctx->tctx->cnt_403s), 1);
+    nr_accumulate_count(&(ctx->tctx->cnt_403s), 1);
     r_log(NR_LOG_TURN, LOG_WARNING, "TURN(%s): mode %d, permission denied",
           ctx->tctx->label, ctx->mode);
 
diff --git a/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.c b/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.c
index add52757581d177c77785019365efafdcc7885f6..92e7d4046db4834cb1cf92a774cab5b2f10c25da 100644
--- a/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.c
+++ b/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.c
@@ -90,7 +90,7 @@ static char *RCSSTRING __UNUSED__ =(char *)"$Id: r_data.c,v 1.2 2006/08/16 19:39
 int r_data_create(dp,d,l)
   Data **dp;
   const UCHAR *d;
-  int l;
+  size_t l;
   {
     Data *d_=0;
     int _status;
@@ -116,7 +116,7 @@ int r_data_create(dp,d,l)
 
 int r_data_alloc_mem(d,l)
   Data *d;
-  int l;
+  size_t l;
   {
     int _status;
 
@@ -131,7 +131,7 @@ int r_data_alloc_mem(d,l)
 
 int r_data_alloc(dp,l)
   Data **dp;
-  int l;
+  size_t l;
   {
     Data *d_=0;
     int _status;
@@ -155,7 +155,7 @@ int r_data_alloc(dp,l)
 int r_data_make(dp,d,l)
   Data *dp;
   const UCHAR *d;
-  int l;
+  size_t l;
   {
     if(!(dp->data=(UCHAR *)RMALLOC(l)))
       ERETURN(R_NO_MEMORY);
diff --git a/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.h b/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.h
index 0e46c3196307a475c581b1e92a86f38d9ea4d0ad..3edf7b287aecac96fb5b0179c2b69a9b0a6bdc0e 100644
--- a/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.h
+++ b/media/mtransport/third_party/nrappkit/src/util/libekr/r_data.h
@@ -86,13 +86,13 @@
 
 typedef struct Data_ {
      UCHAR *data;
-     int len;
+     size_t len;
 } Data;
 
-int r_data_create(Data **dp,const UCHAR *d,int l);
-int r_data_alloc(Data **dp, int l);
-int r_data_make(Data *dp, const UCHAR *d,int l);
-int r_data_alloc_mem(Data *d,int l);
+int r_data_create(Data **dp,const UCHAR *d,size_t l);
+int r_data_alloc(Data **dp, size_t l);
+int r_data_make(Data *dp, const UCHAR *d,size_t l);
+int r_data_alloc_mem(Data *d,size_t l);
 int r_data_destroy(Data **dp);
 int r_data_destroy_v(void *v);
 int r_data_destroy_vp(void **vp);