[LTP] [PATCH LTP] open_posix: fix send_rev_2.c testcase

Jan Stancek jstancek@redhat.com
Wed Jun 4 15:41:54 CEST 2025


On Mon, Jun 2, 2025 at 5:22 PM yang.zhang <gaoshanliukou@163.com> wrote:
>
> From: "yang.zhang" <zhangyang01@kylinos.cn>
>
> 1. After fork, using correct switch branch for parent and child.
> 2. Fix array out-of-bounds issue when calling mq_send.
>
> Signed-off-by: yang.zhang <zhangyang01@kylinos.cn>

Subject says "send_rev_2.c", but patch is for send_rev_1.c,
so that's something to fix during commit.

Reviewed-by: Jan Stancek <jstancek@redhat.com>


> ---
>  .../functional/mqueues/send_rev_1.c           | 35 +++++++++----------
>  1 file changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/testcases/open_posix_testsuite/functional/mqueues/send_rev_1.c b/testcases/open_posix_testsuite/functional/mqueues/send_rev_1.c
> index 46eef837a..7c7d2f761 100644
> --- a/testcases/open_posix_testsuite/functional/mqueues/send_rev_1.c
> +++ b/testcases/open_posix_testsuite/functional/mqueues/send_rev_1.c
> @@ -57,23 +57,6 @@ int main(void)
>                 ret_code = PTS_UNRESOLVED;
>                 break;
>         case 0:
> -               mq_getattr(mq, &attr);
> -               for (i = 0; i < MAX_MSG && ret_code == PTS_PASS; i++) {
> -                       printf("[%d] s_msg_ptr is '%s' \n", i + 1,
> -                              s_msg_ptr[i]);
> -                       printf("Prepare to send message...\n");
> -                       if (-1 == mq_send(mq, s_msg_ptr[i], attr.mq_msgsize, 1)) {
> -                               perror("mq_send doesn't return success \n");
> -                               ret_code = PTS_UNRESOLVED;
> -                       } else {
> -                               printf("Process %ld send message '%s' to "
> -                                      "process %ld \n",
> -                                      (long)getpid(), s_msg_ptr[i], (long)pid);
> -                       }
> -               }
> -               (void)wait(NULL);
> -               break;
> -       default:
>                 printf("Enter into child process...\n");
>                 mq_getattr(mq, &attr);
>                 for (i = 0; i < MAX_MSG && ret_code == PTS_PASS; i++) {
> @@ -91,7 +74,23 @@ int main(void)
>                         }
>                 }
>                 exit(ret_code);
> -
> +               break;
> +       default:
> +               mq_getattr(mq, &attr);
> +               for (i = 0; i < MAX_MSG && ret_code == PTS_PASS; i++) {
> +                       printf("[%d] s_msg_ptr is '%s' \n", i + 1,
> +                              s_msg_ptr[i]);
> +                       printf("Prepare to send message...\n");
> +                       if (-1 == mq_send(mq, s_msg_ptr[i], strlen(s_msg_ptr[i]) + 1, 1)) {
> +                               perror("mq_send doesn't return success \n");
> +                               ret_code = PTS_UNRESOLVED;
> +                       } else {
> +                               printf("Process %ld send message '%s' to "
> +                                      "process %ld \n",
> +                                      (long)getpid(), s_msg_ptr[i], (long)pid);
> +                       }
> +               }
> +               (void)wait(NULL);
>                 break;
>         }
>
> --
> 2.34.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>



More information about the ltp mailing list