]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
zustr2stp.h: Add ZUSTR2STP() macro
authorAlejandro Colomar <alx@kernel.org>
Sun, 30 Jul 2023 16:45:47 +0000 (18:45 +0200)
committerIker Pedrosa <ikerpedrosam@gmail.com>
Fri, 1 Sep 2023 07:39:23 +0000 (09:39 +0200)
It's a wrapper around zustr2stp() that calls SIZEOF_ARRAY() internally.
The function call is usually --in our code base, always-- called with an
array as the second argument.  For such an argument, one should call
SIZEOF_ARRAY().  To avoid mistakes, and simplify usage, let's add this
macro that does it internally.

BTW, this macro doesn't have any issues of double evaluation, because
sizeof() doesn't evaluate its argument (unless it's a VLA, but then
the static_assert(3) within SIZEOF_ARRAY() makes sure VLAs are not
allowed).

Cc: Christian Göttsche <cgzones@googlemail.com>
Cc: Serge Hallyn <serge@hallyn.com>
Cc: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
lib/zustr2stp.h

index 987a7ba800514b20f35313537343ff5a091c15f2..7775fc6dac7007808d0fda433fbb5d2cb379a329 100644 (file)
 #include <string.h>
 
 #include "mempcpy.h"
+#include "sizeof.h"
+
+
+#define ZUSTR2STP(dst, src)  zustr2stp(dst, src, SIZEOF_ARRAY(src))
 
 
 inline char *zustr2stp(char *restrict dst, const char *restrict src, size_t sz);