From: "Tobin C. Harding" <tobin@kernel.org>
To: Kees Cook <keescook@chromium.org>
Cc: "Tobin C. Harding" <tobin@kernel.org>,
Shuah Khan <shuah@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
kernel-hardening@lists.openwall.com,
linux-kernel@vger.kernel.org
Subject: [PATCH 0/6] lib: Add safe string funtions
Date: Tue, 19 Feb 2019 10:23:02 +1100 [thread overview]
Message-ID: <20190218232308.11241-1-tobin@kernel.org> (raw)
No file maintainer, CC'ing all those who touched this file :) And
Shua for kselftest stuff.
Hi Kess,
During your talk at LCA you mentioned that we could do with a couple
more safe string functions. One to zero the tail of the destination
buffer after call to strscpy() and also the self explanatory
strscpy_from_user().
Here is a patch set with my attempts to implement these two functions.
While doing this I noticed that we have a test module for lib/string.c
(lib/test_string.c) that is not tied into kselftest. So I enable this
first up in patch 1.
Patch 2 and 3 are function docstring cleanups.
Patch 4 adds the copy and zero function, naming it strscpy_zeroed().
I'd love some help naming this better. Patch also adds test code.
Patch 5 fixes function docstring to correctly document the behavior of
strncpy_from_user().
Patch 6 adds strscpy_from_user(). Does not include test code.
I had to do a bit of learning for getting the tests hooked into
kselftest, I think its all correct. Module is built correctly when the
config option is present and the tests run both via
make -C tools/testing/selftests TARGETS=lib run_tests
and via loading the module manually. As a side note, this series leaves
tools/testing/selftests/lib with 4 shell scripts that are identical
except the test name. We could probably do with refactoring them into a
single script.
Patchset introduces a checkpatch warning
WARNING:CONFIG_DESCRIPTION: please write a paragraph that describes the config symbol fully
I couldn't work out if this is a false positive or not? Does the new
config option CONFIG_TEST_STRING need more documentation? I don't see
where extra docs should be added and it seems self explanatory as is.
thanks,
Tobin.
Tobin C. Harding (6):
lib/string: Enable string selftesting
lib/string: Fix erroneous 'overflow' documentation
lib/string: Use correct docstring format
lib/string: Add string copy/zero function
lib: Fix function documentation for strncpy_from_user
lib: Add function strscpy_from_user()
include/linux/string.h | 4 ++
lib/Kconfig.debug | 14 +++++++
lib/Makefile | 2 +-
lib/string.c | 41 ++++++++++++++----
lib/strncpy_from_user.c | 60 ++++++++++++++++++++++-----
lib/test_string.c | 35 +++++++++++++++-
tools/testing/selftests/lib/Makefile | 2 +-
tools/testing/selftests/lib/config | 1 +
tools/testing/selftests/lib/string.sh | 19 +++++++++
9 files changed, 157 insertions(+), 21 deletions(-)
create mode 100755 tools/testing/selftests/lib/string.sh
--
2.20.1
next reply other threads:[~2019-02-18 23:23 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-18 23:23 Tobin C. Harding [this message]
2019-02-18 23:23 ` [PATCH 1/6] lib/string: Enable string selftesting Tobin C. Harding
2019-02-19 10:55 ` Andy Shevchenko
2019-02-19 21:55 ` Tobin C. Harding
2019-02-20 10:49 ` Andy Shevchenko
2019-02-20 23:58 ` Kees Cook
2019-02-20 23:57 ` Kees Cook
2019-02-21 5:16 ` Tobin C. Harding
2019-02-18 23:23 ` [PATCH 2/6] lib/string: Fix erroneous 'overflow' documentation Tobin C. Harding
2019-02-21 0:02 ` Kees Cook
2019-02-21 5:17 ` Tobin C. Harding
2019-02-18 23:23 ` [PATCH 3/6] lib/string: Use correct docstring format Tobin C. Harding
2019-02-21 0:07 ` Kees Cook
2019-02-21 4:14 ` Randy Dunlap
2019-02-21 5:27 ` Kees Cook
2019-02-18 23:23 ` [PATCH 4/6] lib/string: Add string copy/zero function Tobin C. Harding
2019-02-21 0:48 ` Kees Cook
2019-02-21 5:20 ` Tobin C. Harding
2019-02-21 12:02 ` Andy Shevchenko
2019-02-25 20:09 ` Tobin C. Harding
2019-02-18 23:23 ` [PATCH 5/6] lib: Fix function documentation for strncpy_from_user Tobin C. Harding
2019-02-19 0:51 ` Jann Horn
2019-02-19 21:52 ` Tobin C. Harding
2019-02-21 1:05 ` Kees Cook
2019-02-21 5:24 ` Tobin C. Harding
2019-02-21 6:02 ` Kees Cook
2019-02-21 14:58 ` Rasmus Villemoes
2019-02-21 23:03 ` Kees Cook
2019-02-25 15:41 ` Rasmus Villemoes
2019-02-21 16:06 ` Jann Horn
2019-02-21 23:14 ` Kees Cook
2019-02-21 20:26 ` Stephen Rothwell
2019-02-21 23:16 ` Kees Cook
2019-02-21 14:28 ` Jann Horn
2019-02-21 22:52 ` Kees Cook
2019-02-18 23:23 ` [PATCH 6/6] lib: Add function strscpy_from_user() Tobin C. Harding
2019-02-19 2:09 ` Jann Horn
2019-02-19 2:12 ` Jann Horn
2019-02-19 21:53 ` Tobin C. Harding
2019-02-20 23:31 ` [PATCH 0/6] lib: Add safe string funtions Kees Cook
2019-02-21 5:15 ` Tobin C. Harding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190218232308.11241-1-tobin@kernel.org \
--to=tobin@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.