ksmbd: use kasprintf() in ksmbd_vfs_xattr_stream_name()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 7 Jul 2021 10:15:32 +0000 (13:15 +0300)
committerNamjae Jeon <namjae.jeon@samsung.com>
Sat, 10 Jul 2021 00:29:13 +0000 (09:29 +0900)
Simplify the code by using kasprintf().  This also silences a Smatch
warning:

    fs/ksmbd/vfs.c:1725 ksmbd_vfs_xattr_stream_name()
    warn: inconsistent indenting

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/vfs.c

index 7339d5c..38677c2 100644 (file)
@@ -1698,35 +1698,20 @@ out:
 int ksmbd_vfs_xattr_stream_name(char *stream_name, char **xattr_stream_name,
                                size_t *xattr_stream_name_size, int s_type)
 {
-       int stream_name_size;
-       char *xattr_stream_name_buf;
-       char *type;
-       int type_len;
+       char *type, *buf;
 
        if (s_type == DIR_STREAM)
                type = ":$INDEX_ALLOCATION";
        else
                type = ":$DATA";
 
-       type_len = strlen(type);
-       stream_name_size = strlen(stream_name);
-       *xattr_stream_name_size = stream_name_size + XATTR_NAME_STREAM_LEN + 1;
-       xattr_stream_name_buf = kmalloc(*xattr_stream_name_size + type_len,
-                                       GFP_KERNEL);
-       if (!xattr_stream_name_buf)
+       buf = kasprintf(GFP_KERNEL, "%s%s%s",
+                       XATTR_NAME_STREAM, stream_name, type);
+       if (!buf)
                return -ENOMEM;
 
-       memcpy(xattr_stream_name_buf, XATTR_NAME_STREAM, XATTR_NAME_STREAM_LEN);
-
-       if (stream_name_size) {
-               memcpy(&xattr_stream_name_buf[XATTR_NAME_STREAM_LEN],
-                      stream_name, stream_name_size);
-       }
-       memcpy(&xattr_stream_name_buf[*xattr_stream_name_size - 1], type, type_len);
-               *xattr_stream_name_size += type_len;
-
-       xattr_stream_name_buf[*xattr_stream_name_size - 1] = '\0';
-       *xattr_stream_name = xattr_stream_name_buf;
+       *xattr_stream_name = buf;
+       *xattr_stream_name_size = strlen(buf) + 1;
 
        return 0;
 }