From 8712fac111206a9594b5b6eba36b590550c1df5c Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 18 Feb 2026 14:55:58 +0100 Subject: [PATCH] clang-tidy: drop redundant casts Found via `readability-redundant-casting`. Prone to false positives, not enabled. Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-casting.html Closes #20630 --- docs/examples/chkspeed.c | 2 +- docs/examples/ftpgetinfo.c | 2 +- lib/cshutdn.c | 2 +- lib/curl_fnmatch.c | 4 ++-- lib/doh.c | 4 ++-- lib/hash.c | 2 +- lib/http.c | 4 ++-- lib/ldap.c | 2 +- lib/mprintf.c | 2 +- lib/multi.c | 2 +- lib/socks_sspi.c | 2 +- lib/url.c | 2 +- lib/version.c | 2 +- lib/vquic/curl_ngtcp2.c | 2 +- lib/vssh/libssh.c | 8 ++++---- lib/vssh/libssh2.c | 4 ++-- lib/vtls/openssl.c | 4 ++-- lib/vtls/schannel.c | 3 +-- src/config2setopts.c | 2 +- src/tool_cb_hdr.c | 2 +- src/tool_cb_prg.c | 2 +- src/tool_cb_rea.c | 2 +- src/tool_filetime.c | 3 +-- tests/libtest/cli_hx_download.c | 4 ++-- tests/libtest/cli_hx_upload.c | 4 ++-- tests/libtest/lib2301.c | 2 +- tests/libtest/lib573.c | 2 +- tests/unit/unit1661.c | 2 +- tests/unit/unit2603.c | 2 +- 29 files changed, 39 insertions(+), 41 deletions(-) diff --git a/docs/examples/chkspeed.c b/docs/examples/chkspeed.c index b29f803bbd..f69215da4b 100644 --- a/docs/examples/chkspeed.c +++ b/docs/examples/chkspeed.c @@ -63,7 +63,7 @@ static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data) so we only return the size we would have saved ... */ (void)ptr; (void)data; - return (size_t)(size * nmemb); + return size * nmemb; } int main(int argc, const char *argv[]) diff --git a/docs/examples/ftpgetinfo.c b/docs/examples/ftpgetinfo.c index ff2a8da084..b943f48d02 100644 --- a/docs/examples/ftpgetinfo.c +++ b/docs/examples/ftpgetinfo.c @@ -42,7 +42,7 @@ static size_t throw_away(void *ptr, size_t size, size_t nmemb, void *data) (void)data; /* we are not interested in the headers itself, so we only return the size we would have saved ... */ - return (size_t)(size * nmemb); + return size * nmemb; } int main(void) diff --git a/lib/cshutdn.c b/lib/cshutdn.c index 85863ef930..518a099069 100644 --- a/lib/cshutdn.c +++ b/lib/cshutdn.c @@ -50,7 +50,7 @@ static void cshutdn_run_conn_handler(struct Curl_easy *data, * default 120 seconds. */ if(data->state.internal) { data->set.timeout = DEFAULT_SHUTDOWN_TIMEOUT_MS; - (void)Curl_pgrsTime(data, TIMER_STARTOP); + Curl_pgrsTime(data, TIMER_STARTOP); } /* This is set if protocol-specific cleanups should be made */ diff --git a/lib/curl_fnmatch.c b/lib/curl_fnmatch.c index 8e35edeed6..dde956c3ac 100644 --- a/lib/curl_fnmatch.c +++ b/lib/curl_fnmatch.c @@ -251,8 +251,8 @@ fail: static int loop(const unsigned char *pattern, const unsigned char *string, int maxstars) { - const unsigned char *p = (const unsigned char *)pattern; - const unsigned char *s = (const unsigned char *)string; + const unsigned char *p = pattern; + const unsigned char *s = string; unsigned char charset[CURLFNM_CHSET_SIZE] = { 0 }; for(;;) { diff --git a/lib/doh.c b/lib/doh.c index 5c36e1c7e8..283746cab3 100644 --- a/lib/doh.c +++ b/lib/doh.c @@ -980,7 +980,7 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname, addr = (void *)ai->ai_addr; /* storage area for this info */ DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4)); memcpy(&addr->sin_addr, &de->addr[i].ip.v4, sizeof(struct in_addr)); - addr->sin_family = (CURL_SA_FAMILY_T)addrtype; + addr->sin_family = addrtype; addr->sin_port = htons((unsigned short)port); break; @@ -989,7 +989,7 @@ static CURLcode doh2ai(const struct dohentry *de, const char *hostname, addr6 = (void *)ai->ai_addr; /* storage area for this info */ DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6)); memcpy(&addr6->sin6_addr, &de->addr[i].ip.v6, sizeof(struct in6_addr)); - addr6->sin6_family = (CURL_SA_FAMILY_T)addrtype; + addr6->sin6_family = addrtype; addr6->sin6_port = htons((unsigned short)port); break; #endif diff --git a/lib/hash.c b/lib/hash.c index 0b6ecc48f7..74cfb2b3a8 100644 --- a/lib/hash.c +++ b/lib/hash.c @@ -177,7 +177,7 @@ void *Curl_hash_add2(struct Curl_hash *h, void *key, size_t key_len, void *p, if(h->comp_func(he->key, he->key_len, key, key_len)) { /* existing key entry, overwrite by clearing old pointer */ hash_elem_clear_ptr(h, he); - he->ptr = (void *)p; + he->ptr = p; he->dtor = dtor; return p; } diff --git a/lib/http.c b/lib/http.c index d56ec19e81..f0a1e57e9d 100644 --- a/lib/http.c +++ b/lib/http.c @@ -3740,12 +3740,12 @@ static CURLcode http_statusline(struct Curl_easy *data, data->info.httpcode = k->httpcode; data->info.httpversion = k->httpversion; - conn->httpversion_seen = (unsigned char)k->httpversion; + conn->httpversion_seen = k->httpversion; if(!data->state.http_neg.rcvd_min || data->state.http_neg.rcvd_min > k->httpversion) /* store the lowest server version we encounter */ - data->state.http_neg.rcvd_min = (unsigned char)k->httpversion; + data->state.http_neg.rcvd_min = k->httpversion; /* * This code executes as part of processing the header. As a diff --git a/lib/ldap.c b/lib/ldap.c index 5068311953..aaf2d5885b 100644 --- a/lib/ldap.c +++ b/lib/ldap.c @@ -416,7 +416,7 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done) Curl_pgrsReset(data); rc = ldap_search_s(server, ludp->lud_dn, - (curl_ldap_num_t)ludp->lud_scope, + ludp->lud_scope, ludp->lud_filter, ludp->lud_attrs, 0, &ldapmsg); if(rc != LDAP_SUCCESS && rc != LDAP_SIZELIMIT_EXCEEDED) { diff --git a/lib/mprintf.c b/lib/mprintf.c index 1d476a8333..5a3349b457 100644 --- a/lib/mprintf.c +++ b/lib/mprintf.c @@ -1049,7 +1049,7 @@ static int formatf(void *userp, /* untouched by format(), just sent to the if(p.flags & FLAGS_LONG) *(long *)iptr->val.ptr = (long)done; else if(!(p.flags & FLAGS_SHORT)) - *(int *)iptr->val.ptr = (int)done; + *(int *)iptr->val.ptr = done; else *(short *)iptr->val.ptr = (short)done; break; diff --git a/lib/multi.c b/lib/multi.c index 6b1e9d62d1..f4add035d1 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -2495,7 +2495,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, /* after init, go SETUP */ multistate(data, MSTATE_SETUP); - (void)Curl_pgrsTime(data, TIMER_STARTOP); + Curl_pgrsTime(data, TIMER_STARTOP); FALLTHROUGH(); case MSTATE_SETUP: diff --git a/lib/socks_sspi.c b/lib/socks_sspi.c index 46727b3744..ca26898e31 100644 --- a/lib/socks_sspi.c +++ b/lib/socks_sspi.c @@ -539,7 +539,7 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf, else { if(sspi_w_token[0].cbBuffer != 1) { failf(data, "Invalid SSPI encryption response length (%lu).", - (unsigned long)sspi_w_token[0].cbBuffer); + sspi_w_token[0].cbBuffer); result = CURLE_COULDNT_CONNECT; goto error; } diff --git a/lib/url.c b/lib/url.c index f0b6b0d5b2..c879a85e92 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3023,7 +3023,7 @@ static CURLcode parse_connect_to_slist(struct Curl_easy *data, } } else if(hit) { - char *hostd = curlx_strdup((char *)as->dst.host); + char *hostd = curlx_strdup(as->dst.host); if(!hostd) return CURLE_OUT_OF_MEMORY; conn->conn_to_host.rawalloc = hostd; diff --git a/lib/version.c b/lib/version.c index 6949278f47..7ccd875dc8 100644 --- a/lib/version.c +++ b/lib/version.c @@ -652,7 +652,7 @@ curl_version_info_data *curl_version_info(CURLversion stamp) #endif #ifdef HAVE_ZSTD - version_info.zstd_ver_num = (unsigned int)ZSTD_versionNumber(); + version_info.zstd_ver_num = ZSTD_versionNumber(); zstd_version(zstd_buffer, sizeof(zstd_buffer)); version_info.zstd_version = zstd_buffer; #endif diff --git a/lib/vquic/curl_ngtcp2.c b/lib/vquic/curl_ngtcp2.c index 32ccada1bc..d2f704f3db 100644 --- a/lib/vquic/curl_ngtcp2.c +++ b/lib/vquic/curl_ngtcp2.c @@ -1824,7 +1824,7 @@ static CURLcode cf_ngtcp2_recv_pkts(const unsigned char *buf, size_t buflen, CURL_TRC_CF(pktx->data, pktx->cf, "vquic_recv(len=%zu, gso=%zu, ecn=%x)", buflen, gso_size, ecn); ngtcp2_addr_init(&path.local, (struct sockaddr *)&ctx->q.local_addr, - (socklen_t)ctx->q.local_addrlen); + ctx->q.local_addrlen); ngtcp2_addr_init(&path.remote, (struct sockaddr *)remote_addr, remote_addrlen); pi.ecn = (uint8_t)ecn; diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 9e4ce40d8d..6256838704 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -152,7 +152,7 @@ static int myssh_is_known(struct Curl_easy *data, struct ssh_conn *sshc) } for(i = 0; i < 16; i++) - curl_msnprintf(&md5buffer[i * 2], 3, "%02x", (unsigned char)hash[i]); + curl_msnprintf(&md5buffer[i * 2], 3, "%02x", hash[i]); infof(data, "SSH MD5 fingerprint: %s", md5buffer); @@ -1168,7 +1168,7 @@ static int myssh_in_SFTP_DOWNLOAD_STAT(struct Curl_easy *data, if(data->state.resume_from) { if(data->state.resume_from < 0) { /* We are supposed to download the last abs(from) bytes */ - if((curl_off_t)size < -data->state.resume_from) { + if(size < -data->state.resume_from) { failf(data, "Offset (%" FMT_OFF_T ") was beyond file size (%" FMT_OFF_T ")", data->state.resume_from, size); return myssh_to_ERROR(data, sshc, CURLE_BAD_DOWNLOAD_RESUME); @@ -1177,7 +1177,7 @@ static int myssh_in_SFTP_DOWNLOAD_STAT(struct Curl_easy *data, data->state.resume_from += size; } else { - if((curl_off_t)size < data->state.resume_from) { + if(size < data->state.resume_from) { failf(data, "Offset (%" FMT_OFF_T ") was beyond file size (%" FMT_OFF_T ")", data->state.resume_from, size); @@ -1732,7 +1732,7 @@ static int myssh_SSH_SCP_DOWNLOAD(struct Curl_easy *data, /* download data */ bytecount = ssh_scp_request_get_size(sshc->scp_session); - data->req.maxdownload = (curl_off_t)bytecount; + data->req.maxdownload = bytecount; Curl_xfer_setup_recv(data, FIRSTSOCKET, bytecount); /* not set by Curl_xfer_setup to preserve keepon bits */ diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c index 8c14a9c987..f1f241c1fc 100644 --- a/lib/vssh/libssh2.c +++ b/lib/vssh/libssh2.c @@ -3218,7 +3218,7 @@ static ssize_t ssh_tls_recv(libssh2_socket_t sock, void *buffer, return -EAGAIN; /* magic return code for libssh2 */ else if(result) return -1; /* generic error */ - Curl_debug(data, CURLINFO_DATA_IN, (const char *)buffer, (size_t)nread); + Curl_debug(data, CURLINFO_DATA_IN, (const char *)buffer, nread); return (ssize_t)nread; } @@ -3791,7 +3791,7 @@ CURLcode Curl_ssh_init(void) void Curl_ssh_cleanup(void) { - (void)libssh2_exit(); + libssh2_exit(); } void Curl_ssh_version(char *buffer, size_t buflen) diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c index b72b8fc34f..ab5c1988d1 100644 --- a/lib/vtls/openssl.c +++ b/lib/vtls/openssl.c @@ -3451,7 +3451,7 @@ ossl_init_session_and_alpns(struct ossl_ctx *octx, failf(data, "Error determining ALPN"); return CURLE_SSL_CONNECT_ERROR; } - if(SSL_set_alpn_protos(octx->ssl, proto.data, (int)proto.len)) { + if(SSL_set_alpn_protos(octx->ssl, proto.data, proto.len)) { failf(data, "Error setting ALPN"); return CURLE_SSL_CONNECT_ERROR; } @@ -5157,7 +5157,7 @@ static CURLcode ossl_recv(struct Curl_cfilter *cf, *pnread = (size_t)nread; else { /* failed SSL_read */ - int err = SSL_get_error(octx->ssl, (int)nread); + int err = SSL_get_error(octx->ssl, nread); switch(err) { case SSL_ERROR_NONE: /* this is not an error */ diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index bfbb06e58f..032d2eab56 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -610,8 +610,7 @@ static CURLcode acquire_sspi_handle(struct Curl_cfilter *cf, credentials.dwVersion = SCH_CREDENTIALS_VERSION; credentials.dwFlags = flags | SCH_USE_STRONG_CRYPTO; - credentials.pTlsParameters->grbitDisabledProtocols = - (DWORD)~enabled_protocols; + credentials.pTlsParameters->grbitDisabledProtocols = ~enabled_protocols; if(client_certs[0]) { credentials.cCreds = 1; diff --git a/src/config2setopts.c b/src/config2setopts.c index ba9b7c40f1..ecc0f7d164 100644 --- a/src/config2setopts.c +++ b/src/config2setopts.c @@ -48,7 +48,7 @@ static int get_address_family(curl_socket_t sockfd) struct sockaddr addr; curl_socklen_t addrlen = sizeof(addr); memset(&addr, 0, sizeof(addr)); - if(getsockname(sockfd, (struct sockaddr *)&addr, &addrlen) == 0) + if(getsockname(sockfd, &addr, &addrlen) == 0) return addr.sa_family; return AF_UNSPEC; } diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c index e22c59694c..76d0f7c458 100644 --- a/src/tool_cb_hdr.c +++ b/src/tool_cb_hdr.c @@ -432,7 +432,7 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata) struct OutStruct *etag_save = &per->etag_save; const char *str = ptr; const size_t cb = size * nmemb; - const char *end = (char *)ptr + cb; + const char *end = ptr + cb; const char *scheme = NULL; if(!per->config) diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c index 2b9e6d6311..3ac746484f 100644 --- a/src/tool_cb_prg.c +++ b/src/tool_cb_prg.c @@ -113,7 +113,7 @@ static void update_width(struct ProgressData *bar) if(cols > MAX_BARLENGTH) bar->width = MAX_BARLENGTH; else if(cols > MIN_BARLENGTH) - bar->width = (int)cols; + bar->width = cols; else bar->width = MIN_BARLENGTH; } diff --git a/src/tool_cb_rea.c b/src/tool_cb_rea.c index 8edd121f12..eb23f9b907 100644 --- a/src/tool_cb_rea.c +++ b/src/tool_cb_rea.c @@ -49,7 +49,7 @@ static bool waitfd(int waitms, int fd) set.fd = fd; set.events = POLLIN; set.revents = 0; - if(poll(&set, 1, (int)waitms)) + if(poll(&set, 1, waitms)) return TRUE; /* timeout */ return FALSE; #else diff --git a/src/tool_filetime.c b/src/tool_filetime.c index 45598413cd..0b6cd7b38f 100644 --- a/src/tool_filetime.c +++ b/src/tool_filetime.c @@ -108,8 +108,7 @@ void setfiletime(curl_off_t filetime, const char *filename) FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, NULL); if(hfile != INVALID_HANDLE_VALUE) { - curl_off_t converted = ((curl_off_t)filetime * 10000000) + - 116444736000000000; + curl_off_t converted = (filetime * 10000000) + 116444736000000000; FILETIME ft; ft.dwLowDateTime = (DWORD)(converted & 0xFFFFFFFF); ft.dwHighDateTime = (DWORD)(converted >> 32); diff --git a/tests/libtest/cli_hx_download.c b/tests/libtest/cli_hx_download.c index 5daac8364e..9c4d99e499 100644 --- a/tests/libtest/cli_hx_download.c +++ b/tests/libtest/cli_hx_download.c @@ -120,7 +120,7 @@ static size_t my_write_d_cb(char *buf, size_t nitems, size_t buflen, return CURL_WRITEFUNC_ERROR; } - return (size_t)nwritten; + return nwritten; } static int my_progress_d_cb(void *userdata, @@ -220,7 +220,7 @@ static int my_progress_d_cb(void *userdata, #endif default: curl_mfprintf(stderr, "[t-%zu] info SSL_PTR backend=%d, ptr=%p\n", - t->idx, tls->backend, (void *)tls->internals); + t->idx, tls->backend, tls->internals); break; } } diff --git a/tests/libtest/cli_hx_upload.c b/tests/libtest/cli_hx_upload.c index 09ede8488f..b5fd1c642c 100644 --- a/tests/libtest/cli_hx_upload.c +++ b/tests/libtest/cli_hx_upload.c @@ -85,7 +85,7 @@ static size_t my_write_u_cb(char *buf, size_t nitems, size_t buflen, return 0; } t->recv_size += (curl_off_t)nwritten; - return (size_t)nwritten; + return nwritten; } static size_t my_read_cb(char *buf, size_t nitems, size_t buflen, @@ -122,7 +122,7 @@ static size_t my_read_cb(char *buf, size_t nitems, size_t buflen, "%" CURL_FORMAT_CURL_OFF_T " bytes\n", t->idx, t->send_size); return CURL_READFUNC_ABORT; } - return (size_t)nread; + return nread; } static int my_progress_u_cb(void *userdata, diff --git a/tests/libtest/lib2301.c b/tests/libtest/lib2301.c index 6449f6bd15..8d036682a4 100644 --- a/tests/libtest/lib2301.c +++ b/tests/libtest/lib2301.c @@ -51,7 +51,7 @@ static size_t t2301_write_cb(char *b, size_t size, size_t nitems, void *p) curl_mfprintf(stderr, "Called CURLOPT_WRITEFUNCTION with %zu bytes: ", nitems); for(i = 0; i < nitems; i++) - curl_mfprintf(stderr, "%02x ", (unsigned char)buffer[i]); + curl_mfprintf(stderr, "%02x ", buffer[i]); curl_mfprintf(stderr, "\n"); (void)size; if(buffer[0] == 0x89) { diff --git a/tests/libtest/lib573.c b/tests/libtest/lib573.c index 1cc45cbf10..158a35bb3b 100644 --- a/tests/libtest/lib573.c +++ b/tests/libtest/lib573.c @@ -41,7 +41,7 @@ static CURLcode test_lib573(const char *URL) dbl_epsilon = 1.0; do { dbl_epsilon /= 2.0; - } while((double)(1.0 + (dbl_epsilon / 2.0)) > (double)1.0); + } while((1.0 + (dbl_epsilon / 2.0)) > 1.0); start_test_timing(); diff --git a/tests/unit/unit1661.c b/tests/unit/unit1661.c index b4c1693e9d..c679fef3e7 100644 --- a/tests/unit/unit1661.c +++ b/tests/unit/unit1661.c @@ -93,7 +93,7 @@ static CURLcode test_unit1661(const char *arg) abort_unless(result == CURLE_OK, curl_easy_strerror(result)); fail_unless(freecount == 1, "Destructor not called"); fail_unless((const char *)bufref.ptr != buffer, "Returned pointer not set"); - buffer = (const char *)Curl_bufref_ptr(&bufref); + buffer = Curl_bufref_ptr(&bufref); fail_unless(buffer, "Allocated pointer is NULL"); fail_unless(bufref.len == 3, "Wrong data size stored"); if(buffer) { diff --git a/tests/unit/unit2603.c b/tests/unit/unit2603.c index 69c49e046a..730b604dc3 100644 --- a/tests/unit/unit2603.c +++ b/tests/unit/unit2603.c @@ -80,7 +80,7 @@ static void parse_success(const struct tcase *t) curl_mfprintf(stderr, "got result %d parsing: '%s'\n", result, buf); fail("error consuming"); } - in_consumed += (size_t)nread; + in_consumed += nread; if(nread != buflen) { if(!p.done) { curl_mfprintf(stderr, "only %zd/%zu consumed for: '%s'\n",