]> granicus.if.org Git - sudo/commitdiff
Add definition of nitems for those without it and use it throughout.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 23 Jun 2016 16:58:07 +0000 (10:58 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 23 Jun 2016 16:58:07 +0000 (10:58 -0600)
include/compat/charclass.h
include/sudo_compat.h
lib/util/aix.c
lib/util/getaddrinfo.c
lib/util/sudo_debug.c
plugins/sudoers/insults.h
plugins/sudoers/regress/parser/check_base64.c
plugins/sudoers/regress/parser/check_fill.c
plugins/sudoers/sudoers_debug.c

index 4fcf15eac284e49e26d6bcc64f3165c619a3a8e3..00e16fce2933ec52dd0eb9ba52106397ab977662 100644 (file)
@@ -36,4 +36,4 @@ static struct cclass {
        { NULL,         NULL }
 };
 
-#define NCCLASSES      (sizeof(cclasses) / sizeof(cclasses[0]) - 1)
+#define NCCLASSES      (nitems(cclasses) - 1)
index 9ed797c315eb79dd55a5adf14ee35f3fba9714cc..ee65655a6c8920b36204f3cdcea774fda8722d33 100644 (file)
@@ -237,6 +237,13 @@ typedef struct sigaction sigaction_t;
 # define SA_RESTART    0
 #endif
 
+/*
+ * The nitems macro may be defined in sys/param.h
+ */
+#ifndef nitems
+# define nitems(_a)    (sizeof((_a)) / sizeof((_a)[0]))
+#endif
+
 /*
  * If dirfd() does not exists, hopefully dd_fd does.
  */
index ef9d041cf7e6487f7a820e8526913fd6e8d06ea4..c477cf8cef139f9a3f541cd82adb200de8d83dc2 100644 (file)
@@ -90,7 +90,7 @@ aix_setlimits(char *user)
      * For each resource limit, get the soft/hard values for the user
      * and set those values via setrlimit64().  Must be run as euid 0.
      */
-    for (n = 0; n < sizeof(aix_limits) / sizeof(aix_limits[0]); n++) {
+    for (n = 0; n < nitems(aix_limits); n++) {
        /*
         * We have two strategies, depending on whether or not the
         * hard limit has been defined.
index b63640534fd965dc7d6d230f6b0e69598b90eb84..046e4db94f667c963ca6c03b300c58e9615dd7b7 100644 (file)
@@ -144,13 +144,6 @@ static const char * const gai_errors[] = {
 # define sin_set_length(s) /* empty */
 #endif
 
-/*
- * Used for iterating through arrays.  ARRAY_SIZE returns the number of
- * elements in the array (useful for a < upper bound in a for loop).
- */
-#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
-
-
 /*
  * Return a constant string for a given EAI_* error code or a string
  * indicating an unknown error.
@@ -158,7 +151,7 @@ static const char * const gai_errors[] = {
 const char *
 sudo_gai_strerror(int ecode)
 {
-    if (ecode < 1 || (size_t) ecode > ARRAY_SIZE(gai_errors))
+    if (ecode < 1 || (size_t) ecode > nitems(gai_errors))
         return "Unknown error";
     else
         return gai_errors[ecode - 1];
index 3b81c56a5acf46c9cef35854ed110da4f3f98886..6e04278b97a9fe7a3455a60aa547aa981f98f722 100644 (file)
@@ -81,7 +81,7 @@ static const char *const sudo_debug_default_subsystems[] = {
     NULL
 };
 
-#define NUM_DEF_SUBSYSTEMS     (sizeof(sudo_debug_default_subsystems) / sizeof(sudo_debug_default_subsystems[0]) - 1)
+#define NUM_DEF_SUBSYSTEMS     (nitems(sudo_debug_default_subsystems) - 1)
 
 /*
  * For multiple programs/plugins there is a per-program instance
index c54b3e4091eb25ec9a1755d7ccc1c107dd8d090e..31f1a4eb2ae49abacbdb84371f5f8d0d62329457 100644 (file)
@@ -42,14 +42,14 @@ char *insults[] = {
 #  include "ins_csops.h"
 # endif
 
-    (char *) 0
+    NULL
 
 };
 
 /*
  * How may I insult you?  Let me count the ways...
  */
-#define NOFINSULTS (sizeof(insults) / sizeof(insults[0]) - 1)
+#define NOFINSULTS (nitems(insults) - 1)
 
 /*
  * return a pseudo-random insult.
index 7c9afa6fea3a11dd73551ebbfe15e6a220e19318..7af85bb979fcca2bb09c0f8394ec5a3bbc65e5b1 100644 (file)
@@ -74,7 +74,7 @@ struct base64_test {
 int
 main(int argc, char *argv[])
 {
-    const int ntests = (sizeof(test_strings) / sizeof(test_strings[0]));
+    const int ntests = nitems(test_strings);
     int i, errors = 0;
     unsigned char buf[32];
     size_t len;
index 8d59e55380abde89629520215bd15d17c625ffe5..95fdcae2a57f6afff7efa05f8759d2bcaf17c6ac 100644 (file)
@@ -175,13 +175,11 @@ main(int argc, char *argv[])
 
     initprogname(argc > 0 ? argv[0] : "check_fill");
 
-    errors += do_tests(check_fill, txt_data, sizeof(txt_data) / sizeof(txt_data[0]));
-    errors += do_tests(check_fill_cmnd, cmd_data, sizeof(cmd_data) / sizeof(cmd_data[0]));
-    errors += do_tests(check_fill_args, args_data, sizeof(args_data) / sizeof(args_data[0]));
+    errors += do_tests(check_fill, txt_data, nitems(txt_data));
+    errors += do_tests(check_fill_cmnd, cmd_data, nitems(cmd_data));
+    errors += do_tests(check_fill_args, args_data, nitems(args_data));
 
-    ntests = sizeof(txt_data) / sizeof(txt_data[0]) +
-       sizeof(cmd_data) / sizeof(cmd_data[0]) +
-       sizeof(args_data) / sizeof(args_data[0]);
+    ntests = nitems(txt_data) + nitems(cmd_data) + nitems(args_data);
     printf("%s: %d tests run, %d errors, %d%% success rate\n", getprogname(),
        ntests, errors, (ntests - errors) * 100 / ntests);
 
index 9dc8727fdb12e5b6af8ee53b9aecf5fdb2b8a4c0..3fbae4710fab589140e550f2c186070727f111f5 100644 (file)
@@ -59,7 +59,7 @@ static const char *const sudoers_subsystem_names[] = {
     NULL
 };
 
-#define NUM_SUBSYSTEMS  (sizeof(sudoers_subsystem_names) / sizeof(sudoers_subsystem_names[0]) - 1)
+#define NUM_SUBSYSTEMS  (nitems(sudoers_subsystem_names) - 1)
 
 /* Subsystem IDs assigned at registration time. */
 unsigned int sudoers_subsystem_ids[NUM_SUBSYSTEMS];