• Dan Carpenter's avatar
    ASoC: SOF: ipc-msg-injector: fix copy in sof_msg_inject_ipc4_dfs_write() · fa9b878f
    Dan Carpenter authored
    There are two bugs that have to do with when we copy the payload:
    
    	size = simple_write_to_buffer(ipc4_msg->data_ptr,
    			      priv->max_msg_size, ppos, buffer,
    			      count);
    
    The value of "*ppos" was supposed to be zero but it is
    sizeof(ipc4_msg->header_u64) so it will copy the data into the middle of
    the "ipc4_msg->data_ptr" buffer instead of to the start.  The second
    problem is "buffer" should be "buffer + sizeof(ipc4_msg->header_u64)".
    
    This function is used for fuzz testing so the data is normally random
    and this bug likely does not affect anyone very much.
    
    In this context, it's simpler and more appropriate to use copy_from_user()
    instead of simple_write_to_buffer() so I have re-written the function.
    
    Fixes: 066c6762 ("ASoC: SOF: ipc-msg-injector: Add support for IPC4 messages")
    Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/Ysg1tB2FKLnRMsel@kiliSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    fa9b878f
sof-client-ipc-msg-injector.c 8.47 KB