From: Adam Emerson Date: Tue, 14 Jan 2025 19:59:48 +0000 (-0500) Subject: libcephfs_proxy: Remove arithmetic on `void*` X-Git-Tag: v20.3.0~12^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb1fa8181390421051f7bc83a9aa81fb407642d2;p=ceph.git libcephfs_proxy: Remove arithmetic on `void*` GCC 14 warns as this is apparently widely supported but Technically Incorrect. Signed-off-by: Adam Emerson --- diff --git a/src/libcephfs_proxy/CMakeLists.txt b/src/libcephfs_proxy/CMakeLists.txt index 0ccce9b0b9fd..83de8bdf9fcb 100644 --- a/src/libcephfs_proxy/CMakeLists.txt +++ b/src/libcephfs_proxy/CMakeLists.txt @@ -4,10 +4,8 @@ set(libcephfs_proxy_srcs libcephfs_proxy.c ${proxy_common_srcs}) add_executable(libcephfsd ${libcephfsd_srcs}) add_library(cephfs_proxy ${CEPH_SHARED} ${libcephfs_proxy_srcs}) -target_compile_options(cephfs_proxy PRIVATE "-Wno-gnu-pointer-arith") target_link_libraries(libcephfsd cephfs ${CRYPTO_LIBS}) -target_compile_options(libcephfsd PRIVATE "-Wno-gnu-pointer-arith") if(ENABLE_SHARED) set_target_properties(cephfs_proxy PROPERTIES diff --git a/src/libcephfs_proxy/libcephfsd.c b/src/libcephfs_proxy/libcephfsd.c index b48e88b338b8..fd9e746466d1 100644 --- a/src/libcephfs_proxy/libcephfsd.c +++ b/src/libcephfs_proxy/libcephfsd.c @@ -238,7 +238,7 @@ static int32_t libcephfsd_conf_set(proxy_client_t *client, proxy_req_t *req, if (err >= 0) { option = CEPH_STR_GET(req->conf_set, option, data); value = CEPH_STR_GET(req->conf_set, value, - data + req->conf_set.option); + (const char *)(data) + req->conf_set.option); err = proxy_mount_set(mount, option, value); TRACE("ceph_conf_set(%p, '%s', '%s') -> %d", mount, option, @@ -810,7 +810,7 @@ static int32_t libcephfsd_ll_rename(proxy_client_t *client, proxy_req_t *req, if (err >= 0) { old_name = CEPH_STR_GET(req->ll_rename, old_name, data); new_name = CEPH_STR_GET(req->ll_rename, new_name, - data + req->ll_rename.old_name); + (const char *)data + req->ll_rename.old_name); err = ceph_ll_rename(proxy_cmount(mount), old_parent, old_name, new_parent, new_name, perms); @@ -1220,7 +1220,7 @@ static int32_t libcephfsd_ll_setxattr(proxy_client_t *client, proxy_req_t *req, } if (err >= 0) { name = CEPH_STR_GET(req->ll_setxattr, name, data); - value = data + req->ll_setxattr.name; + value = (const char *)data + req->ll_setxattr.name; size = req->ll_setxattr.size; flags = req->ll_setxattr.flags; @@ -1326,7 +1326,7 @@ static int32_t libcephfsd_ll_symlink(proxy_client_t *client, proxy_req_t *req, if (err >= 0) { name = CEPH_STR_GET(req->ll_symlink, name, data); value = CEPH_STR_GET(req->ll_symlink, target, - data + req->ll_symlink.name); + (const char *)data + req->ll_symlink.name); want = req->ll_symlink.want; flags = req->ll_symlink.flags; diff --git a/src/libcephfs_proxy/proxy_link.c b/src/libcephfs_proxy/proxy_link.c index 066aa8ef546d..bc8885836b52 100644 --- a/src/libcephfs_proxy/proxy_link.c +++ b/src/libcephfs_proxy/proxy_link.c @@ -89,7 +89,7 @@ static int32_t proxy_link_read(proxy_link_t *link, int32_t sd, void *buffer, return proxy_log(LOG_ERR, EPIPE, "Partial read"); } - buffer += len; + buffer = (char *)buffer + len; size -= len; } @@ -117,7 +117,7 @@ static int32_t proxy_link_write(proxy_link_t *link, int32_t sd, void *buffer, return proxy_log(LOG_ERR, EPIPE, "Partial write"); } - buffer += len; + buffer = (char *)buffer + len; size -= len; } @@ -239,13 +239,13 @@ static int32_t proxy_link_negotiate_read(proxy_link_t *link, int32_t sd, proxy_link_negotiate_t *neg) { char buffer[128]; - void *ptr; + char *ptr; uint32_t size, len; int32_t err; memset(neg, 0, sizeof(proxy_link_negotiate_t)); - ptr = neg; + ptr = (char *)neg; err = proxy_link_read(link, sd, ptr, sizeof(neg->v0)); if (err < 0) { @@ -706,7 +706,7 @@ int32_t proxy_link_send(int32_t sd, struct iovec *iov, int32_t count) } if (count > 0) { - iov->iov_base += len; + iov->iov_base = (char *)iov->iov_base + len; iov->iov_len -= len; } } @@ -746,7 +746,7 @@ int32_t proxy_link_recv(int32_t sd, struct iovec *iov, int32_t count) } if (count > 0) { - iov->iov_base += len; + iov->iov_base = (char *)iov->iov_base + len; iov->iov_len -= len; } } @@ -806,7 +806,7 @@ int32_t proxy_link_req_recv(int32_t sd, struct iovec *iov, int32_t count) return proxy_log(LOG_ERR, ENOBUFS, "Request is too long"); } - iov->iov_base += sizeof(proxy_link_req_t); + iov->iov_base = (char *)iov->iov_base + sizeof(proxy_link_req_t); iov->iov_len = req->header_len - sizeof(proxy_link_req_t); } else { iov++; @@ -877,7 +877,7 @@ int32_t proxy_link_ans_recv(int32_t sd, struct iovec *iov, int32_t count) return proxy_log(LOG_ERR, ENOBUFS, "Answer is too long"); } - iov->iov_base += sizeof(proxy_link_ans_t); + iov->iov_base = (char *)iov->iov_base + sizeof(proxy_link_ans_t); iov->iov_len = ans->header_len - sizeof(proxy_link_ans_t); } else { iov++;