Commit 7929b983 authored by Jonathan Corbet's avatar Jonathan Corbet

docs: Remove :c:func: from process/deprecated.rst

Documentation/process/deprecated.rst has a lot of uses of :c:func:, which
is, well, deprecated.  Emacs query-replace-regexp to the rescue.
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 76136e02
...@@ -63,51 +63,51 @@ Instead, use the helper:: ...@@ -63,51 +63,51 @@ Instead, use the helper::
header = kzalloc(struct_size(header, item, count), GFP_KERNEL); header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`, See array_size(), array3_size(), and struct_size(),
for more details as well as the related :c:func:`check_add_overflow` and for more details as well as the related check_add_overflow() and
:c:func:`check_mul_overflow` family of functions. check_mul_overflow() family of functions.
simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull() simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull()
---------------------------------------------------------------------- ----------------------------------------------------------------------
The :c:func:`simple_strtol`, :c:func:`simple_strtoll`, The simple_strtol(), simple_strtoll(),
:c:func:`simple_strtoul`, and :c:func:`simple_strtoull` functions simple_strtoul(), and simple_strtoull() functions
explicitly ignore overflows, which may lead to unexpected results explicitly ignore overflows, which may lead to unexpected results
in callers. The respective :c:func:`kstrtol`, :c:func:`kstrtoll`, in callers. The respective kstrtol(), kstrtoll(),
:c:func:`kstrtoul`, and :c:func:`kstrtoull` functions tend to be the kstrtoul(), and kstrtoull() functions tend to be the
correct replacements, though note that those require the string to be correct replacements, though note that those require the string to be
NUL or newline terminated. NUL or newline terminated.
strcpy() strcpy()
-------- --------
:c:func:`strcpy` performs no bounds checking on the destination strcpy() performs no bounds checking on the destination
buffer. This could result in linear overflows beyond the buffer. This could result in linear overflows beyond the
end of the buffer, leading to all kinds of misbehaviors. While end of the buffer, leading to all kinds of misbehaviors. While
`CONFIG_FORTIFY_SOURCE=y` and various compiler flags help reduce the `CONFIG_FORTIFY_SOURCE=y` and various compiler flags help reduce the
risk of using this function, there is no good reason to add new uses of risk of using this function, there is no good reason to add new uses of
this function. The safe replacement is :c:func:`strscpy`. this function. The safe replacement is strscpy().
strncpy() on NUL-terminated strings strncpy() on NUL-terminated strings
----------------------------------- -----------------------------------
Use of :c:func:`strncpy` does not guarantee that the destination buffer Use of strncpy() does not guarantee that the destination buffer
will be NUL terminated. This can lead to various linear read overflows will be NUL terminated. This can lead to various linear read overflows
and other misbehavior due to the missing termination. It also NUL-pads the and other misbehavior due to the missing termination. It also NUL-pads the
destination buffer if the source contents are shorter than the destination destination buffer if the source contents are shorter than the destination
buffer size, which may be a needless performance penalty for callers using buffer size, which may be a needless performance penalty for callers using
only NUL-terminated strings. The safe replacement is :c:func:`strscpy`. only NUL-terminated strings. The safe replacement is strscpy().
(Users of :c:func:`strscpy` still needing NUL-padding should instead (Users of strscpy() still needing NUL-padding should instead
use strscpy_pad().) use strscpy_pad().)
If a caller is using non-NUL-terminated strings, :c:func:`strncpy()` can If a caller is using non-NUL-terminated strings, strncpy()() can
still be used, but destinations should be marked with the `__nonstring still be used, but destinations should be marked with the `__nonstring
<https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_ <https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_
attribute to avoid future compiler warnings. attribute to avoid future compiler warnings.
strlcpy() strlcpy()
--------- ---------
:c:func:`strlcpy` reads the entire source buffer first, possibly exceeding strlcpy() reads the entire source buffer first, possibly exceeding
the given limit of bytes to copy. This is inefficient and can lead to the given limit of bytes to copy. This is inefficient and can lead to
linear read overflows if a source string is not NUL-terminated. The linear read overflows if a source string is not NUL-terminated. The
safe replacement is :c:func:`strscpy`. safe replacement is strscpy().
%p format specifier %p format specifier
------------------- -------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment