[PATCH v1] update quotactl to not print QCMD macro under Xraw

Dmitry V. Levin ldv at altlinux.org
Sat Dec 22 00:46:51 UTC 2018


Hi Shankara,

On Wed, Dec 19, 2018 at 05:21:11AM -0800, shankarapailoor wrote:
> Hi Dmitry,
> 
> Attached is an updated version which I think addresses your comments above.

First of all, I tried to build strace with this patch applied but
got a lot of similar errors of the following kind:

In file included from ../../tests/quotactl-Xverbose.c:2:
../../tests/quotactl.c: In function 'main':
../../tests/quotactl.c:209:54: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1010 [-Werror=format-truncation=]
  snprintf(quotacmd_str, sizeof(quotacmd_str), "%u /* %s */", cmd, abbrev_str);
                                                      ^~
../../tests/quotactl.c:259:2:
  check_quota(CQF_NONE, bogus_cmd, gen_quotacmd(invalid_cmd_str, bogus_cmd),
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       bogus_special, bogus_special_str, bogus_id, bogus_addr);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:862,
                 from ../../tests/quotactl.c:21,
                 from ../../tests/quotactl-Xverbose.c:2:
/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 18 and 1041 bytes into a destination of size 1024
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> From f4cc5d7b1181aeee038566d3ae752669d234ae0f Mon Sep 17 00:00:00 2001
> From: Shankara Pailoor <shankarapailoor at gmail.com>
> Date: Wed, 19 Dec 2018 05:01:40 -0800
> Subject: [PATCH v1] quotactl: change quotactl to properly handle -Xraw
>  * quota.c: add new function print_qcmd that properly handles -Xraw, -Xverbose
>  * tests/quotactl.c: extend quotactl tests to properly handle -Xraw, -Xverbose
>  * tests/quotactl.h: Likewise
>  * tests/quotactl-Xabbrev.c: New tests for handle -X flags
>  * tests/quotactl-Xraw.c: Likewise
>  * tests/quotactl-Xverbose.c: Likewise
>  * tests/pure_executables.list: Add new tests
>  * tests/gen_tests.in: Likewise
>  * tests/.gitignore: Likewise

Please add an empty line after the first line of commit message,
otherwise it becomes a single line of enormous length.

> diff --git a/tests/.gitignore b/tests/.gitignore
> index 918b95be..ecf30855 100644
> --- a/tests/.gitignore
> +++ b/tests/.gitignore
> @@ -412,10 +412,13 @@ quotactl
>  quotactl-success
>  quotactl-success-v
>  quotactl-v
> +quotactl-Xabbrev
>  quotactl-xfs
>  quotactl-xfs-success
>  quotactl-xfs-success-v
>  quotactl-xfs-v
> +quotactl-Xraw
> +quotactl-Xverbose
>  read-write
>  readahead
>  readdir

Please keep this list sorted.

> diff --git a/tests/gen_tests.in b/tests/gen_tests.in
> index 9f7e605c..8b81b4d6 100644
> --- a/tests/gen_tests.in
> +++ b/tests/gen_tests.in
> @@ -334,10 +334,13 @@ pselect6
>  ptrace	-a23 -e signal=none
>  ptrace_syscall_info	-a35 -e signal=none -e trace=ptrace
>  pwritev	-a22 -s7
> -quotactl
> +quotactl -a1

Why do you need to change this?

>  quotactl-v	-v -e trace=quotactl
>  quotactl-xfs	-e trace=quotactl
>  quotactl-xfs-v	-v -e trace=quotactl
> +quotactl-Xabbrev -a1	-Xabbrev -e trace=quotactl
> +quotactl-Xraw	-a1	-Xraw -e trace=quotactl
> +quotactl-Xverbose	-a1	-Xverbose -e trace=quotactl

Why -a1?

>  read-write	-a15 -eread=0,5 -ewrite=1,4 -e trace=read,write -P read-write-tmpfile -P /dev/zero -P /dev/null
>  readahead	-a1
>  readdir	-a16
> diff --git a/tests/pure_executables.list b/tests/pure_executables.list
> index b8120f2b..afd00cab 100755
> --- a/tests/pure_executables.list
> +++ b/tests/pure_executables.list
> @@ -340,6 +340,9 @@ ptrace_syscall_info
>  pwritev
>  quotactl
>  quotactl-xfs
> +quotactl-Xabbrev
> +quotactl-Xraw
> +quotactl-Xverbose
>  read-write
>  readahead
>  readdir

Please keep this list sorted.

> diff --git a/tests/quotactl.h b/tests/quotactl.h
> index e624c6ae..15996c44 100644
> --- a/tests/quotactl.h
> +++ b/tests/quotactl.h
> @@ -39,6 +39,10 @@
>  #  define PRJQUOTA 2
>  # endif
>  
> +#define QUOTA_STR(_arg) (_arg), gen_quotacmd(#_arg, _arg)
> +#define QUOTA_ID_STR(_arg) (_arg), gen_quotaid(#_arg, _arg)
> +#define QUOTA_STR_INVALID(_arg, str) (_arg), gen_quotacmd(str, _arg)
> +

tests/quotactl.h is included by more than one source file but
these functions are defined only in one of them.
What was the rationale for this design decision?


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20181222/ceb537cc/attachment.bin>


More information about the Strace-devel mailing list