[d-kernel] [PATCH 1/2] kiosk: split kiosk_nl_send_*
Vitaly Chikunov
vt на altlinux.org
Ср Авг 6 16:57:46 MSK 2025
Oleg,
On Wed, Aug 06, 2025 at 04:18:22PM +0300, mcpain at altlinux.org wrote:
> From: Oleg Solovyov <mcpain at altlinux.org>
>
> kiosk_nl_send_msg is used within two different contexts:
> - send current kiosk mode
> - send kiosk list
Вам конечно виднее, но зачем 2 раза одно и то же в разных функциях?
Не описано с какой целью это делается.
Thanks,
>
> So, we have to use different methods for different contexts.
> ---
> security/kiosk/kiosk_lsm.c | 38 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 35 insertions(+), 3 deletions(-)
>
> diff --git a/security/kiosk/kiosk_lsm.c b/security/kiosk/kiosk_lsm.c
> index 18f810a1ce0f..20635af4936f 100644
> --- a/security/kiosk/kiosk_lsm.c
> +++ b/security/kiosk/kiosk_lsm.c
> @@ -148,7 +148,39 @@ static int kiosk_remove_item(struct list_head *list, char *filename,
> return 0;
> }
>
> -static int kiosk_nl_send_msg(struct sk_buff *skb, struct genl_info *info,
> +static int kiosk_nl_send_mode(struct sk_buff *skb, struct genl_info *info,
> + char *msg)
> +{
> + int msg_size;
> + int res;
> + struct nlmsghdr *nlh;
> + struct sk_buff *skb_out;
> +
> + msg_size = strlen(msg) + 1;
> + /* we put string so add space for NUL-terminator */
> +
> + skb_out = genlmsg_new(msg_size, GFP_KERNEL);
> + if (!skb_out)
> + return -ENOMEM;
> +
> + nlh = genlmsg_put_reply(skb_out, info, &genl_kiosk_family, 0,
> + KIOSK_REPLY);
> + if (!nlh) {
> + nlmsg_free(skb_out);
> + return -ENOMEM;
> + }
> +
> + res = nla_put_string(skb_out, KIOSK_DATA, msg);
> + if (res) {
> + nlmsg_free(skb_out);
> + return res;
> + }
> +
> + genlmsg_end(skb_out, nlh);
> + return genlmsg_reply(skb_out, info);
> +}
> +
> +static int kiosk_nl_send_item(struct sk_buff *skb, struct genl_info *info,
> char *msg)
> {
> int msg_size;
> @@ -206,7 +238,7 @@ static int kiosk_list_items(struct list_head *list, struct rw_semaphore *sem,
> path = "";
>
> up_read(sem);
> - return kiosk_nl_send_msg(skb, info, path);
> + return kiosk_nl_send_item(skb, info, path);
> }
>
> static int kiosk_genl_doit(struct sk_buff *skb, struct genl_info *info)
> @@ -230,7 +262,7 @@ static int kiosk_genl_doit(struct sk_buff *skb, struct genl_info *info)
> if (!strlen(pathbuf)) {
> /* we want to retrieve current mode */
> snprintf(buf, sizeof(buf), "%d", kiosk_mode);
> - return kiosk_nl_send_msg(skb, info, buf);
> + return kiosk_nl_send_mode(skb, info, buf);
> }
>
> error = kstrtouint(pathbuf, 0, &new_mode);
> --
> 2.50.1
>
> _______________________________________________
> devel-kernel mailing list
> devel-kernel at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel-kernel
Подробная информация о списке рассылки devel-kernel