lkml.org 
[lkml]   [2021]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 03/64] rpmsg: glink: Replace strncpy() with strscpy_pad()
    Date
    The use of strncpy() is considered deprecated for NUL-terminated
    strings[1]. Replace strncpy() with strscpy_pad() (as it seems this case
    expects the NUL padding to fill the allocation following the flexible
    array). This additionally silences a warning seen when building under
    -Warray-bounds:

    ./include/linux/fortify-string.h:38:30: warning: '__builtin_strncpy' offset 24 from the object at '__mptr' is out of the bounds of referenced subobject 'data' with type 'u8[]' {aka 'unsigned char[]'} at offset 24 [-Warray-bounds]
    38 | #define __underlying_strncpy __builtin_strncpy
    | ^
    ./include/linux/fortify-string.h:50:9: note: in expansion of macro '__underlying_strncpy'
    50 | return __underlying_strncpy(p, q, size);
    | ^~~~~~~~~~~~~~~~~~~~
    drivers/rpmsg/qcom_glink_native.c: In function 'qcom_glink_work':
    drivers/rpmsg/qcom_glink_native.c:36:5: note: subobject 'data' declared here
    36 | u8 data[];
    | ^~~~

    [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings

    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    drivers/rpmsg/qcom_glink_native.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
    index 05533c71b10e..c7b9de655080 100644
    --- a/drivers/rpmsg/qcom_glink_native.c
    +++ b/drivers/rpmsg/qcom_glink_native.c
    @@ -1440,7 +1440,7 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,
    }

    rpdev->ept = &channel->ept;
    - strncpy(rpdev->id.name, name, RPMSG_NAME_SIZE);
    + strscpy_pad(rpdev->id.name, name, RPMSG_NAME_SIZE);
    rpdev->src = RPMSG_ADDR_ANY;
    rpdev->dst = RPMSG_ADDR_ANY;
    rpdev->ops = &glink_device_ops;
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-07-27 23:01    [W:5.734 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site