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:
parent
538abf3332
commit
a48e68441b
2 changed files with 6 additions and 18 deletions
|
|
@ -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.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue