Thread (6 messages) 6 messages, 3 authors, 2014-10-02

Re: [PATCHv9 net-next 2/4] sunvnet: make transmit path zero-copy in the kernel

From: Raghuram Kothakota <hidden>
Date: 2014-10-02 23:11:48

On Oct 2, 2014, at 4:11 AM, David L Stevens [off-list ref] wrote:

On 10/02/2014 01:50 AM, Raghuram Kothakota wrote:

quoted
quoted
+	err = ldc_map_single(port->vio.lp, start, nlen,
+			     port->tx_bufs[txi].cookies, 2,
+			     (LDC_MAP_SHADOW | LDC_MAP_DIRECT | LDC_MAP_RW));

The LDC sharing protection mechanism is at a page level. If I understand
well, the vnet_skb_shape() function only addresses the alignment requirement
but it still leaves the possibility of exporting a lot more data than required to the
peer. This can be treated as a security issue,  wondering if you thought of this issue.
Since the specific offsets and lengths are provided in the API, I didn't realize that it was
sharing more than the provided buffer until you pointed that out, before I submitted the
patches. At that point, I considered it.

The original buffers were ~1500 byte kzalloc'ed (for each buffer), meaning that they were
potentially shared with arbitrary kernel memory on the same page.
That is not good as well, we do not want to share more than what the other guest
need to see.

-Raghuram
This patch-set doesn't increase or decrease any security concerns related to oversharing
with other LDOMs. The extents outside the provided buffers are (now) skbs, and so packet
data, where before they could be any dynamically allocated kernel memory.

								+-DLS
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help