On Thu, Jul 06, 2017 at 02:48:51PM +0300, Dmitry V. Levin wrote:
> On Thu, Jul 06, 2017 at 09:57:31AM +0800, JingPiao Chen wrote:
> > commit v4.17-161-gdbd0605 adjust TEST_NLATTR_OBJECT and
> > TEST_NLATTR_ARRAY for large objects, only change the pattern
> > print length, still pass a big length for nla_data_len, do not
> > change strace output, still output '"STR"...'.
> > 
> > * tests/test_nlattr.h (TEST_NLATTR_OBJECT, TEST_NLATTR_ARRAY):
> > In case of len < sizeof(object), pass plen as nla_data_len and slen.
> > ---
> >  tests/test_nlattr.h | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/tests/test_nlattr.h b/tests/test_nlattr.h
> > index 9c15c33..4a2af02 100644
> > --- a/tests/test_nlattr.h
> > +++ b/tests/test_nlattr.h
> > @@ -108,8 +108,7 @@ print_nlattr(const unsigned int nla_len, const char 
> > *const nla_type)
> >             TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),                 \
> >                     (init_msg_), (print_msg_),                      \
> >                     (nla_type_), #nla_type_,                        \
> > -                   sizeof(obj_) - 1,                               \
> > -                   (pattern_), sizeof(obj_) - 1,                   \
> > +                   plen, (pattern_), plen,                         \
> >                     print_quoted_hex((pattern_), plen));            \
> >             /* short read of sizeof(obj_) */                        \
> >             TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),                 \
> > @@ -139,8 +138,7 @@ print_nlattr(const unsigned int nla_len, const char 
> > *const nla_type)
> >             TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),                 \
> >                     (init_msg_), (print_msg_),                      \
> >                     (nla_type_), #nla_type_,                        \
> > -                   sizeof((obj_)[0]) - 1,                          \
> > -                   (pattern_), sizeof((obj_)[0]) - 1,              \
> > +                   plen, (pattern_), plen,                         \
> >                     print_quoted_hex((pattern_), plen));            \
> >             /* sizeof((obj_)[0]) < len < sizeof(obj_) */            \
> >             TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),                 \
> 
> I don't see why this change is needed.  I thought it's fine to pass an
> object larger than plen as long as it's smaller than expected by strace.

I think you can apply [PATCH v4 03/11],  [PATCH v4 04/11]
and [PATCH v4 06/11] to see what happen, test log above:

-{{nla_len=47, nla_type=PACKET_DIAG_MCLIST}, 
"abcdefghijklmnopqrstuvwxyzabcdef"}}
+{{nla_len=47, nla_type=PACKET_DIAG_MCLIST}, 
"abcdefghijklmnopqrstuvwxyzabcdef"...}}

--- exp 2017-07-06 22:54:20.617639241 +0800
+++ log 2017-07-06 22:54:20.617639241 +0800
@@ -1,5 +1,5 @@
-sendto(3, {{len=79, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, pid=0}, 
{pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, pdiag_ino=0, 
pdiag_cookie=[0, 0]}, {{nla_len=47, nla_type=PACKET_DIAG_MCLIST}, 
"abcdefghijklmnopqrstuvwxyzabcdef"}}, 79, MSG_DONTWAIT, NULL, 0) = 79
-sendto(3, {{len=123, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=91, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr=1234}]}}, 123, MSG_DONTWAIT, NULL, 0) = 123
-sendto(3, {{len=124, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=92, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr=1234}, 0x7f09e2a90fd5]}}, 124, MSG_DONTWAIT, NULL, 0) = 
-1 EFAULT (Bad address)
-sendto(3, {{len=124, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=92, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr=1234}, {pdmc_index=if_nametoindex("lo"), 
pdmc_count=3673156348, pdmc_type=44527, pdmc_alen=4, pdmc_addr=5678}]}}, 124, 
MSG_DONTWAIT, NULL, 0) = 124
+sendto(3, {{len=79, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, pid=0}, 
{pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, pdiag_ino=0, 
pdiag_cookie=[0, 0]}, {{nla_len=47, nla_type=PACKET_DIAG_MCLIST}, 
"abcdefghijklmnopqrstuvwxyzabcdef"...}}, 79, MSG_DONTWAIT, NULL, 0) = 79
+sendto(3, {{len=123, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=91, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr="1234"}]}}, 123, MSG_DONTWAIT, NULL, 0) = 123
+sendto(3, {{len=124, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=92, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr="1234"}, 0x7f09e2a90fd5]}}, 124, MSG_DONTWAIT, NULL, 0) 
= -1 EFAULT (Bad address)
+sendto(3, {{len=124, type=SOCK_DIAG_BY_FAMILY, flags=NLM_F_DUMP, seq=0, 
pid=0}, {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM, pdiag_num=0, 
pdiag_ino=0, pdiag_cookie=[0, 0]}, {{nla_len=92, nla_type=PACKET_DIAG_MCLIST}, 
[{pdmc_index=if_nametoindex("lo"), pdmc_count=2882383612, pdmc_type=52655, 
pdmc_alen=4, pdmc_addr="1234"}, {pdmc_index=if_nametoindex("lo"), 
pdmc_count=3673156348, pdmc_type=44527, pdmc_alen=4, pdmc_addr="5678"}]}}, 124, 
MSG_DONTWAIT, NULL, 0) = 124
 +++ exited with 0 +++

 --
 JingPiao Chen

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to