logging: Remove syscall for z_log_msg_runtime_vcreate

This syscall is completely problematic in userspace, it does
not check ANY parameter that is given and it uses variadic argument
that are not copied / checked before being used in the implementation,
instead it just pass a pointer to user stack with unknown data is
blindly consumed by the kernel.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
This commit is contained in:
Flavio Ceolin 2023-11-14 05:20:47 +00:00 committed by Anas Nashif
parent 538abf3332
commit a48e68441b
2 changed files with 6 additions and 18 deletions

View file

@ -679,11 +679,11 @@ __syscall void z_log_msg_static_create(const void *source,
*
* @param ap Variable list of string arguments.
*/
__syscall void z_log_msg_runtime_vcreate(uint8_t domain_id, const void *source,
uint8_t level, const void *data,
size_t dlen, uint32_t package_flags,
const char *fmt,
va_list ap);
void z_log_msg_runtime_vcreate(uint8_t domain_id, const void *source,
uint8_t level, const void *data,
size_t dlen, uint32_t package_flags,
const char *fmt,
va_list ap);
/** @brief Create message at runtime.
*

View file

@ -281,7 +281,7 @@ static inline void z_vrfy_z_log_msg_static_create(const void *source,
#include <syscalls/z_log_msg_static_create_mrsh.c>
#endif
void z_impl_z_log_msg_runtime_vcreate(uint8_t domain_id, const void *source,
void z_log_msg_runtime_vcreate(uint8_t domain_id, const void *source,
uint8_t level, const void *data, size_t dlen,
uint32_t package_flags, const char *fmt, va_list ap)
{
@ -330,15 +330,3 @@ void z_impl_z_log_msg_runtime_vcreate(uint8_t domain_id, const void *source,
z_log_msg_finalize(msg, source, desc, data);
}
}
#ifdef CONFIG_USERSPACE
static inline void z_vrfy_z_log_msg_runtime_vcreate(uint8_t domain_id,
const void *source,
uint8_t level, const void *data, size_t dlen,
uint32_t package_flags, const char *fmt, va_list ap)
{
return z_impl_z_log_msg_runtime_vcreate(domain_id, source, level, data,
dlen, package_flags, fmt, ap);
}
#include <syscalls/z_log_msg_runtime_vcreate_mrsh.c>
#endif