]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
libcephfs_proxy: Remove arithmetic on `void*` 62658/head
authorAdam Emerson <aemerson@redhat.com>
Tue, 14 Jan 2025 19:59:48 +0000 (14:59 -0500)
committerAdam C. Emerson <aemerson@redhat.com>
Thu, 3 Apr 2025 16:34:23 +0000 (12:34 -0400)
GCC 14 warns as this is apparently widely supported but Technically Incorrect.

Signed-off-by: Adam Emerson <aemerson@redhat.com>
src/libcephfs_proxy/CMakeLists.txt
src/libcephfs_proxy/libcephfsd.c
src/libcephfs_proxy/proxy_link.c

index 0ccce9b0b9fdf77985360ee653b2fc592cc7b066..83de8bdf9fcb0da0bdf5e6126f10b1988c3d5b19 100644 (file)
@@ -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
index b48e88b338b83341a9f5a5ce1ab7e5a2ad9bf68f..fd9e746466d161e43868a9ce3451cb3043eb0df1 100644 (file)
@@ -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;
 
index 066aa8ef546ddf87973781d9f2b4c8fc181a866f..bc8885836b5238d5348fba0694451ba5d74dee27 100644 (file)
@@ -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++;