On Wed, Jun 14, 2017 at 07:49:34AM +0800, JingPiao Chen wrote: > On Tue, Jun 13, 2017 at 07:10:13PM +0300, Dmitry V. Levin wrote: > > On Tue, Jun 13, 2017 at 07:04:21PM +0800, JingPiao Chen wrote: > > > +static void > > > +test_unix_diag_req(const int fd) > > > +{ > > > ... > > > + /* short read of unix_diag_req */ > > > + nlh = nlh0 - (sizeof(*req) - 1); > > > + memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1); > > > + > > > + rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT, > > > + NULL, 0); > > > + > > > + printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY" > > > + ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_UNIX, %p}}" > > > + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", > > > + fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req), > > > + NLMSG_DATA(nlh) + 1, > > > + NLMSG_HDRLEN + (unsigned int) sizeof(*req), > > > + sprintrc(rc)); > > > +} > > > > > > When (sizeof(*req) - 1 - sizeof(*family) > DEFAULT_STRLEN), the test > will > > > fail. > > > > Why? In this part of the test strace is expected to print a pointer, > > not a string, so it shouldn't be affected by DEFAULT_STRLEN. > This fault appear when call test_inet_diag_req. > > Call stack is decode_inet_diag_req -->> decode_family -->> printstrn > len = sizeof(*req) - 1 - sizeof(*family), > When sizeof(*req) - 1 - sizeof(*family) > DEFAULT_STRLEN, umoven will > return true, because: (util.c: 770) > size = max_strlen + 1; > if (size > len) > size = len;
I see. Would it be better to print the address instead of the string in case of umove failure, e.g. if (len < sizeof(msg)) return false; if (umove_or_printaddr(tcp, addr, &msg)) return true; What do you think? -- ldv
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ 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