Message ID | alpine.DEB.2.21.2301070437400.26826@domac.alu.hr (mailing list archive) |
---|---|
State | Accepted |
Commit | 7d6ceeb1875cc08dc3d1e558e191434d94840cd5 |
Headers | show |
Series | [net,v4] af_unix: selftest: Fix the size of the parameter to connect() | expand |
From: Mirsad Goran Todorovac <mirsad.todorovac@alu.hr> Date: Sat, 7 Jan 2023 04:40:20 +0100 (CET) > From: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> > > Adjust size parameter in connect() to match the type of the parameter, to > fix "No such file or directory" error in selftests/net/af_unix/ > test_oob_unix.c:127. > > The existing code happens to work provided that the autogenerated pathname > is shorter than sizeof (struct sockaddr), which is why it hasn't been > noticed earlier. > > Visible from the trace excerpt: > > bind(3, {sa_family=AF_UNIX, sun_path="unix_oob_453059"}, 110) = 0 > clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fa6a6577a10) = 453060 > [pid <child>] connect(6, {sa_family=AF_UNIX, sun_path="unix_oob_45305"}, 16) = -1 ENOENT (No such file or directory) > > BUG: The filename is trimmed to sizeof (struct sockaddr). > > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Eric Dumazet <edumazet@google.com> > Cc: Jakub Kicinski <kuba@kernel.org> > Cc: Paolo Abeni <pabeni@redhat.com> > Cc: Shuah Khan <shuah@kernel.org> > Cc: Kuniyuki Iwashima <kuniyu@amazon.co.jp> > Cc: Florian Westphal <fw@strlen.de> > Reviewed-by: Florian Westphal <fw@strlen.de> > Fixes: 314001f0bf92 ("af_unix: Add OOB support") > Signed-off-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> You can check the current status here. https://patchwork.kernel.org/project/netdevbpf/patch/alpine.DEB.2.21.2301070437400.26826@domac.alu.hr/ PS: you may want to check config not to send a mail as multipart next time. Thank you, Kuniyuki > --- > > The patch is generated against the "vanilla" Torvalds mainline tree 6.2-rc2. > (Tested and applies against the net.git tree.) > > > tools/testing/selftests/net/af_unix/test_unix_oob.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/net/af_unix/test_unix_oob.c b/tools/testing/selftests/net/af_unix/test_unix_oob.c > index b57e91e1c3f2..532459a15067 100644 > --- a/tools/testing/selftests/net/af_unix/test_unix_oob.c > +++ b/tools/testing/selftests/net/af_unix/test_unix_oob.c > @@ -124,7 +124,7 @@ void producer(struct sockaddr_un *consumer_addr) > > wait_for_signal(pipefd[0]); > if (connect(cfd, (struct sockaddr *)consumer_addr, > - sizeof(struct sockaddr)) != 0) { > + sizeof(*consumer_addr)) != 0) { > perror("Connect failed"); > kill(0, SIGTERM); > exit(1); > > -- > Mirsad Goran Todorovac > Sistem inženjer > Grafički fakultet | Akademija likovnih umjetnosti > Sveučilište u Zagrebu > > System engineer > Faculty of Graphic Arts | Academy of Fine Arts > University of Zagreb, Republic of Croatia > The European Union
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Sat, 7 Jan 2023 04:40:20 +0100 (CET) you wrote: > From: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> > > Adjust size parameter in connect() to match the type of the parameter, to > fix "No such file or directory" error in selftests/net/af_unix/ > test_oob_unix.c:127. > > The existing code happens to work provided that the autogenerated pathname > is shorter than sizeof (struct sockaddr), which is why it hasn't been > noticed earlier. > > [...] Here is the summary with links: - [net,v4] af_unix: selftest: Fix the size of the parameter to connect() https://git.kernel.org/netdev/net/c/7d6ceeb1875c You are awesome, thank you!
On 9.1.2023. 2:15, Kuniyuki Iwashima wrote: > From: Mirsad Goran Todorovac <mirsad.todorovac@alu.hr> > Date: Sat, 7 Jan 2023 04:40:20 +0100 (CET) >> From: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> >> >> Adjust size parameter in connect() to match the type of the parameter, to >> fix "No such file or directory" error in selftests/net/af_unix/ >> test_oob_unix.c:127. >> >> The existing code happens to work provided that the autogenerated pathname >> is shorter than sizeof (struct sockaddr), which is why it hasn't been >> noticed earlier. >> >> Visible from the trace excerpt: >> >> bind(3, {sa_family=AF_UNIX, sun_path="unix_oob_453059"}, 110) = 0 >> clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fa6a6577a10) = 453060 >> [pid <child>] connect(6, {sa_family=AF_UNIX, sun_path="unix_oob_45305"}, 16) = -1 ENOENT (No such file or directory) >> >> BUG: The filename is trimmed to sizeof (struct sockaddr). >> >> Cc: "David S. Miller" <davem@davemloft.net> >> Cc: Eric Dumazet <edumazet@google.com> >> Cc: Jakub Kicinski <kuba@kernel.org> >> Cc: Paolo Abeni <pabeni@redhat.com> >> Cc: Shuah Khan <shuah@kernel.org> >> Cc: Kuniyuki Iwashima <kuniyu@amazon.co.jp> >> Cc: Florian Westphal <fw@strlen.de> >> Reviewed-by: Florian Westphal <fw@strlen.de> >> Fixes: 314001f0bf92 ("af_unix: Add OOB support") >> Signed-off-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> > > Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> > > You can check the current status here. > https://patchwork.kernel.org/project/netdevbpf/patch/alpine.DEB.2.21.2301070437400.26826@domac.alu.hr/ Thank you very much for your time on this, Koniyuki, Jakub. > PS: you may want to check config not to send a mail as multipart next time. Done! Thanks for the hint. This should work: [ Sending Preferences ] [X] Do Not Generate Sender Header [ ] Use Sender Instead of X-X-Sender [X] Do Not Send Flowed Text [X] Downgrade Multipart to Text Maybe add this to Documentation/process/email-clients.rst, section Alpine? It could save some round-trips ... Thanks, Mirsad
diff --git a/tools/testing/selftests/net/af_unix/test_unix_oob.c b/tools/testing/selftests/net/af_unix/test_unix_oob.c index b57e91e1c3f2..532459a15067 100644 --- a/tools/testing/selftests/net/af_unix/test_unix_oob.c +++ b/tools/testing/selftests/net/af_unix/test_unix_oob.c @@ -124,7 +124,7 @@ void producer(struct sockaddr_un *consumer_addr) wait_for_signal(pipefd[0]); if (connect(cfd, (struct sockaddr *)consumer_addr, - sizeof(struct sockaddr)) != 0) { + sizeof(*consumer_addr)) != 0) { perror("Connect failed"); kill(0, SIGTERM); exit(1);