rust icon indicating copy to clipboard operation
rust copied to clipboard

Misaligned pointer exposure in `<String as TensorType>::unpack`

Open shinmao opened this issue 1 year ago • 1 comments

The source of unsoundness

Hi, we found an unsound implementation in unpack which could create a misaligned pointer: https://github.com/tensorflow/rust/blob/62a3019cfa0720c9744b4bd5f97db953bf4066cf/src/lib.rs#L900-L903 At line 902, the u8 pointer would cast to TF_TString which had stronger alignment requirements. The misaligned pointer passed to slice::from_raw_parts would break the safety guarantee. Please check and happy to have a discussion:)

shinmao avatar Sep 27 '23 04:09 shinmao

It's not released yet, but as of https://github.com/tensorflow/rust/pull/418 the TensorType trait is sealed. I'd like to follow up by marking that function as unsafe and hiding it from the docs. It's not intended to be called by client code, and in the code path that uses it internally it simply uses data from the C FFI, which is presumably aligned.

adamcrume avatar Mar 13 '24 01:03 adamcrume