diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c index b1a4c3486d7..e5894a1de83 100644 --- a/ext/sockets/conversions.c +++ b/ext/sockets/conversions.c @@ -930,7 +930,7 @@ static void from_zval_write_control_array(const zval *arr, char *msghdr_c, ser_c char *bufp = buf; zval *elem; uint32_t i = 0; - int num_elems; + uint32_t num_elems; void *control_buf; zend_llist_element *alloc; size_t control_len, @@ -1102,7 +1102,7 @@ static void from_zval_write_iov_array_aux(zval *elem, unsigned i, void **args, s } static void from_zval_write_iov_array(const zval *arr, char *msghdr_c, ser_context *ctx) { - int num_elem; + uint32_t num_elem; struct msghdr *msg = (struct msghdr*)msghdr_c; if (Z_TYPE_P(arr) != IS_ARRAY) { @@ -1361,7 +1361,7 @@ void to_zval_read_ucred(const char *data, zval *zv, res_context *ctx) #ifdef SCM_RIGHTS size_t calculate_scm_rights_space(const zval *arr, ser_context *ctx) { - int num_elems; + uint32_t num_elems; if (Z_TYPE_P(arr) != IS_ARRAY) { do_from_zval_err(ctx, "%s", "expected an array here"); @@ -1374,7 +1374,7 @@ size_t calculate_scm_rights_space(const zval *arr, ser_context *ctx) return (size_t)-1; } - return zend_hash_num_elements(Z_ARRVAL_P(arr)) * sizeof(int); + return num_elems * sizeof(int); } static void from_zval_write_fd_array_aux(zval *elem, unsigned i, void **args, ser_context *ctx) { @@ -1420,7 +1420,7 @@ void from_zval_write_fd_array(const zval *arr, char *int_arr, ser_context *ctx) void to_zval_read_fd_array(const char *data, zval *zv, res_context *ctx) { size_t *cmsg_len; - int num_elems, + uint32_t num_elems, i; struct cmsghdr *dummy_cmsg = 0; size_t data_offset;