lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 20 Jul 2007 09:46:38 +0800 From: "rae l" <crquan@...il.com> To: "Paul Clements" <paul.clements@...eleye.com> Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, "Pavel Machek" <pavel@....cz>, "Steven Whitehouse" <steve@...gwyn.com>, "Andrew Morton" <akpm@...ux-foundation.org>, debra <chdebra@...il.com> Subject: Re: [PATCH 2/2] nbd: change a parameter's type to remove a memcpy call On 7/20/07, Paul Clements <paul.clements@...eleye.com> wrote: > Denis Cheng wrote: > > this memcpy looks so strange, in fact it's merely a pointer dereference, > > so I change the parameter's type to refer it more directly, > > this could make the memcpy not needed anymore. > > > > in the function nbd_read_stat where nbd_find_request is only once called, > > the parameter served should be transformed accordingly. > > This is really a matter of preference. The generated code ends up being > about the same, I think, while your patch makes the call to > nbd_find_request kind of obtuse. Also, the memcpy's are balanced between > send_req and find_request, so you can quickly see how the data is being > transferred (from req into handle, and then back again). Your patch > makes this less clear, at least to me. With one explicit memcpy stripped out, I think it's more clear to nbd_find_request. In nbd_read_stat, the cast to (struct request **) is not apparent, I must admit; but I think the best solution is declaring other few structs to make it clear, it's due to the lack of description of nbd client and server communication protocol. BTW, I think the nbd driver needs a clear documentation (its main site http://nbd.sourceforge.net/ does not give it): 1. When nbd_find_request is needed to call, the 8 byte memory of char handle[8] field in struct nbd_reply actually stores a pointer (struct request *), that pointer is received from the network. Since a pointer is only meaningful to the host, transfering it over the network will be unreliable, I don't think it's a good design, -- Denis Cheng Linux Application Developer "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists