<div dir="ltr"><div>+static void</div><div>+test_unix_diag_req(const int fd)</div><div>+{</div><div>...</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>/* short read of unix_diag_req */</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>nlh = nlh0 - (sizeof(*req) - 1);</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">      </span>memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);</div><div>+</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">   </span>rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">               </span>    NULL, 0);</div><div>+</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">       </span>printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">      </span>       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_UNIX, %p}}"</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>       NLMSG_DATA(nlh) + 1,</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">        </span>       NLMSG_HDRLEN + (unsigned int) sizeof(*req),</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>       sprintrc(rc));</div><div>+}</div><div><br></div><div>When (sizeof(*req) - 1 - sizeof(*family) > DEFAULT_STRLEN), the test will fail.</div><div>I replace sizeof(*req) - 1 with sizeof(*family).</div><div><br></div><div>nlh = nlh0 - sizeof(*family);</div><div>memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*family));</div><div><br></div><div>+static void</div><div>+test_unix_diag_msg(const int fd)</div><div>+{</div><div>...</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">       </span>/* short read of unix_diag_msg */</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>nlh = nlh0 - (sizeof(*msg) - 1);</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">      </span>memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);</div><div>+</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">   </span>rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">               </span>    NULL, 0);</div><div>+</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">       </span>printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">      </span>       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_UNIX, %p}}"</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">        </span>       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">     </span>       NLMSG_DATA(nlh) + 1,</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre">        </span>       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),</div><div>+<span class="gmail-Apple-tab-span" style="white-space:pre"> </span>       sprintrc(rc));</div><div>+}</div><div><br></div><div>Likewise.</div><div><br></div><div>--</div><div>JingPiao Chen</div></div>