Alejandro Colomar
225530b7e1
lib/strncpy.h: Add STRNCPY() wrapper for strncpy(3)
...
This wrapper calculates the destination buffer's size, to avoid errors
in the size calculation.
A curious fact: this macro did exist in Version 7 Unix (with a slightly
different name). I found it by chance, investigating the origins of
strncpy(3) and strncat(3) in V7, after Branden suggested me to do so,
related to recent discussions about string_copying(7).
alx@debian:~/src/unix/unix/Research-V7$ grepc SCPYN .
./usr/src/cmd/login.c:#define SCPYN(a, b) strncpy(a, b, sizeof(a))
Our implementation is slightly better, because using nitems() we're
protected against passing a pointer instead of an array, and it's also
conceptually more appropriate: for wide characters, it would be
#define WCSNCPY(dst, src) wcsncpy(dst, src, NITEMS(dst))
Cc: "G. Branden Robinson" <branden@debian.org >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2023-11-26 06:48:18 -06:00
..
2007-10-07 11:46:07 +00:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-04 08:57:18 -05:00
2023-09-04 08:57:18 -05:00
2023-08-30 17:22:38 +02:00
2023-06-08 09:05:39 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-30 17:22:38 +02:00
2023-02-24 12:44:14 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-10-20 21:05:33 +02:00
2022-12-29 13:58:49 -06:00
2023-11-22 12:55:26 +01:00
2023-10-21 21:37:38 -05:00
2023-09-01 09:39:23 +02:00
2023-11-23 08:04:39 -06:00
2023-11-13 12:40:48 +01:00
2022-01-02 18:38:42 -06:00
2023-08-31 08:55:26 +02:00
2023-10-20 21:05:33 +02:00
2021-12-23 19:36:50 -06:00
2021-12-23 19:36:50 -06:00
2023-11-26 06:48:18 -06:00
2023-08-31 08:55:26 +02:00
2023-03-31 09:53:40 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-02-09 10:03:03 -06:00
2023-05-15 09:21:16 +02:00
2023-02-09 10:03:03 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-11-25 21:24:38 -06:00
2023-10-20 18:46:23 -05:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2021-12-23 19:36:50 -06:00
2023-10-20 21:05:33 +02:00
2021-12-23 19:36:50 -06:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2023-11-26 06:48:18 -06:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-10-20 21:05:33 +02:00
2023-11-26 06:48:18 -06:00
2023-09-01 09:39:23 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2022-12-22 11:43:29 +01:00
2008-08-30 18:30:36 +00:00
2023-10-20 21:05:33 +02:00
2023-11-25 21:24:38 -06:00
2023-01-25 12:31:17 +01:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-05-31 09:29:49 -05:00
2021-12-23 19:36:50 -06:00
2023-11-13 12:40:48 +01:00
2023-09-04 08:57:18 -05:00
2023-09-04 08:57:18 -05:00
2022-05-24 07:49:11 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-21 13:54:27 -05:00
2021-12-23 19:36:50 -06:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-10-20 21:05:33 +02:00
2022-05-24 07:49:11 -05:00
2023-09-01 09:39:23 +02:00
2023-03-20 08:47:52 +01:00
2023-04-26 17:52:54 -05:00
2023-08-31 08:55:26 +02:00
2023-10-20 21:05:33 +02:00
2023-06-08 09:05:39 -05:00
2022-10-14 10:41:40 +02:00
2022-12-22 11:43:29 +01:00
2023-09-01 09:39:23 +02:00
2021-12-23 19:36:50 -06:00
2023-02-09 10:03:03 -06:00
2023-02-09 10:03:03 -06:00
2021-12-23 19:36:50 -06:00
2023-01-26 22:44:39 -06:00
2021-12-27 16:28:23 +00:00
2022-08-06 11:27:56 -05:00
2023-09-01 09:39:23 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2022-01-02 18:38:42 -06:00
2023-10-20 21:05:33 +02:00
2023-10-20 21:05:33 +02:00
2023-06-08 09:05:39 -05:00
2018-09-13 14:20:02 +02:00
2023-08-30 17:22:38 +02:00
2023-09-04 08:57:43 -05:00
2023-08-30 17:22:38 +02:00
2023-02-16 11:29:33 +01:00
2023-11-26 06:48:18 -06:00
2023-11-22 12:55:26 +01:00
2023-11-22 12:55:26 +01:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-11-13 12:40:48 +01:00
2021-05-23 08:16:16 -05:00
2023-08-31 08:55:26 +02:00
2023-08-21 11:29:17 +02:00
2010-03-18 19:23:00 +00:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-11-26 06:48:18 -06:00
2023-08-31 08:55:26 +02:00
2023-08-18 20:35:15 -05:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-08-31 08:55:26 +02:00
2023-09-01 09:39:23 +02:00
2023-09-04 08:57:43 -05:00