[systemd-devel] [RFC 21/25] make sure basename that doesn't alter it's argument

Tom Gundersen teg at jklm.no
Thu Sep 18 09:16:38 PDT 2014


This needs a bit more explanation. Why this change?

Cheers,

Tom

On Thu, Sep 18, 2014 at 3:24 PM, Emil Renner Berthing <systemd at esmil.dk> wrote:
> ---
>  src/core/execute.c                  |  6 +++---
>  src/core/load-fragment.c            |  2 +-
>  src/core/manager.c                  |  2 +-
>  src/core/unit.c                     |  4 ++--
>  src/delta/delta.c                   | 14 +++++++-------
>  src/journal/journalctl.c            |  2 +-
>  src/locale/localectl.c              |  2 +-
>  src/login/logind-inhibit.c          |  2 +-
>  src/login/logind-seat.c             |  2 +-
>  src/login/logind-session.c          |  2 +-
>  src/nspawn/nspawn.c                 |  2 +-
>  src/shared/cgroup-show.c            |  4 ++--
>  src/shared/conf-files.c             |  4 ++--
>  src/shared/install.c                | 14 +++++++-------
>  src/shared/path-util.c              |  8 ++++++++
>  src/shared/path-util.h              |  5 +++++
>  src/shared/util.c                   |  4 ++--
>  src/shared/utmp-wtmp.c              |  2 +-
>  src/systemctl/systemctl.c           | 12 ++++++------
>  src/sysv-generator/sysv-generator.c |  4 ++--
>  src/test/test-install.c             | 18 +++++++++---------
>  src/test/test-path-util.c           |  8 ++++----
>  22 files changed, 68 insertions(+), 55 deletions(-)
>
> diff --git a/src/core/execute.c b/src/core/execute.c
> index e73eb8e..77724ce 100644
> --- a/src/core/execute.c
> +++ b/src/core/execute.c
> @@ -912,7 +912,7 @@ static void rename_process_from_path(const char *path) {
>          /* This resulting string must fit in 10 chars (i.e. the length
>           * of "/sbin/init") to look pretty in /bin/ps */
>
> -        p = basename(path);
> +        p = path_basename(path);
>          if (isempty(p)) {
>                  rename_process("(...)");
>                  return;
> @@ -1331,13 +1331,13 @@ static int exec_child(ExecCommand *command,
>                  return err;
>          }
>
> -        err = setup_output(context, STDOUT_FILENO, socket_fd, basename(command->path), params->unit_id, params->apply_tty_stdin);
> +        err = setup_output(context, STDOUT_FILENO, socket_fd, path_basename(command->path), params->unit_id, params->apply_tty_stdin);
>          if (err < 0) {
>                  *error = EXIT_STDOUT;
>                  return err;
>          }
>
> -        err = setup_output(context, STDERR_FILENO, socket_fd, basename(command->path), params->unit_id, params->apply_tty_stdin);
> +        err = setup_output(context, STDERR_FILENO, socket_fd, path_basename(command->path), params->unit_id, params->apply_tty_stdin);
>          if (err < 0) {
>                  *error = EXIT_STDERR;
>                  return err;
> diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
> index 0620882..61db112 100644
> --- a/src/core/load-fragment.c
> +++ b/src/core/load-fragment.c
> @@ -3322,7 +3322,7 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
>                  /* Add the file name we are currently looking at to
>                   * the names of this unit, but only if it is a valid
>                   * unit name. */
> -                name = basename(*filename);
> +                name = path_basename(*filename);
>
>                  if (unit_name_is_valid(name, TEMPLATE_VALID)) {
>
> diff --git a/src/core/manager.c b/src/core/manager.c
> index 88d660d..22a9c89 100644
> --- a/src/core/manager.c
> +++ b/src/core/manager.c
> @@ -1217,7 +1217,7 @@ int manager_load_unit_prepare(
>                  return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Path %s is not absolute.", path);
>
>          if (!name)
> -                name = basename(path);
> +                name = path_basename(path);
>
>          t = unit_name_to_type(name);
>
> diff --git a/src/core/unit.c b/src/core/unit.c
> index def5c36..c14859e 100644
> --- a/src/core/unit.c
> +++ b/src/core/unit.c
> @@ -2170,7 +2170,7 @@ static const char *resolve_template(Unit *u, const char *name, const char*path,
>          assert(p);
>
>          if (!name)
> -                name = basename(path);
> +                name = path_basename(path);
>
>          if (!unit_name_is_template(name)) {
>                  *p = NULL;
> @@ -2941,7 +2941,7 @@ UnitFileState unit_get_unit_file_state(Unit *u) {
>          if (u->unit_file_state < 0 && u->fragment_path)
>                  u->unit_file_state = unit_file_get_state(
>                                  u->manager->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER,
> -                                NULL, basename(u->fragment_path));
> +                                NULL, path_basename(u->fragment_path));
>
>          return u->unit_file_state;
>  }
> diff --git a/src/delta/delta.c b/src/delta/delta.c
> index 91f8592..cb049e8 100644
> --- a/src/delta/delta.c
> +++ b/src/delta/delta.c
> @@ -282,8 +282,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
>                          return -ENOMEM;
>
>                  log_debug("Adding to drops: %s %s %s %s %s",
> -                          unit, draw_special_char(DRAW_ARROW), basename(p), draw_special_char(DRAW_ARROW), p);
> -                k = hashmap_put(h, basename(p), p);
> +                          unit, draw_special_char(DRAW_ARROW), path_basename(p), draw_special_char(DRAW_ARROW), p);
> +                k = hashmap_put(h, path_basename(p), p);
>                  if (k < 0) {
>                          free(p);
>                          if (k != -EEXIST)
> @@ -334,8 +334,8 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
>                  if (!p)
>                          return -ENOMEM;
>
> -                log_debug("Adding at top: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p);
> -                k = hashmap_put(top, basename(p), p);
> +                log_debug("Adding at top: %s %s %s", path_basename(p), draw_special_char(DRAW_ARROW), p);
> +                k = hashmap_put(top, path_basename(p), p);
>                  if (k >= 0) {
>                          p = strdup(p);
>                          if (!p)
> @@ -345,9 +345,9 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
>                          return k;
>                  }
>
> -                log_debug("Adding at bottom: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p);
> -                free(hashmap_remove(bottom, basename(p)));
> -                k = hashmap_put(bottom, basename(p), p);
> +                log_debug("Adding at bottom: %s %s %s", path_basename(p), draw_special_char(DRAW_ARROW), p);
> +                free(hashmap_remove(bottom, path_basename(p)));
> +                k = hashmap_put(bottom, path_basename(p), p);
>                  if (k < 0) {
>                          free(p);
>                          return k;
> diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
> index 47206d3..3085c03 100644
> --- a/src/journal/journalctl.c
> +++ b/src/journal/journalctl.c
> @@ -741,7 +741,7 @@ static int add_matches(sd_journal *j, char **args) {
>                                  if (executable_is_script(path, &interpreter) > 0) {
>                                          _cleanup_free_ char *comm;
>
> -                                        comm = strndup(basename(path), 15);
> +                                        comm = strndup(path_basename(path), 15);
>                                          if (!comm)
>                                                  return log_oom();
>
> diff --git a/src/locale/localectl.c b/src/locale/localectl.c
> index bf8b7b2..7b0ffb8 100644
> --- a/src/locale/localectl.c
> +++ b/src/locale/localectl.c
> @@ -247,7 +247,7 @@ static int nftw_cb(
>              !endswith(fpath, ".map.gz"))
>                  return 0;
>
> -        p = strdup(basename(fpath));
> +        p = strdup(path_basename(fpath));
>          if (!p)
>                  return log_oom();
>
> diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c
> index a9e14af..0a33eea 100644
> --- a/src/login/logind-inhibit.c
> +++ b/src/login/logind-inhibit.c
> @@ -45,7 +45,7 @@ Inhibitor* inhibitor_new(Manager *m, const char* id) {
>                  return NULL;
>          }
>
> -        i->id = basename(i->state_file);
> +        i->id = path_basename(i->state_file);
>
>          if (hashmap_put(m->inhibitors, i->id, i) < 0) {
>                  free(i->state_file);
> diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c
> index 9992195..5930689 100644
> --- a/src/login/logind-seat.c
> +++ b/src/login/logind-seat.c
> @@ -51,7 +51,7 @@ Seat *seat_new(Manager *m, const char *id) {
>                  return NULL;
>          }
>
> -        s->id = basename(s->state_file);
> +        s->id = path_basename(s->state_file);
>          s->manager = m;
>
>          if (hashmap_put(m->seats, s->id, s) < 0) {
> diff --git a/src/login/logind-session.c b/src/login/logind-session.c
> index eeb58c9..f676d68 100644
> --- a/src/login/logind-session.c
> +++ b/src/login/logind-session.c
> @@ -68,7 +68,7 @@ Session* session_new(Manager *m, const char *id) {
>                  return NULL;
>          }
>
> -        s->id = basename(s->state_file);
> +        s->id = path_basename(s->state_file);
>
>          if (hashmap_put(m->sessions, s->id, s) < 0) {
>                  hashmap_free(s->devices);
> diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
> index 5af89c9..45ed502 100644
> --- a/src/nspawn/nspawn.c
> +++ b/src/nspawn/nspawn.c
> @@ -2938,7 +2938,7 @@ int main(int argc, char *argv[]) {
>          }
>
>          if (!arg_machine) {
> -                arg_machine = strdup(basename(arg_image ? arg_image : arg_directory));
> +                arg_machine = strdup(path_basename(arg_image ? arg_image : arg_directory));
>                  if (!arg_machine) {
>                          log_oom();
>                          goto finish;
> diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c
> index c862ee9..afecd62 100644
> --- a/src/shared/cgroup-show.c
> +++ b/src/shared/cgroup-show.c
> @@ -180,7 +180,7 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns
>
>                  if (last) {
>                          printf("%s%s%s\n", prefix, draw_special_char(DRAW_TREE_BRANCH),
> -                                           basename(last));
> +                                           path_basename(last));
>
>                          if (!p1) {
>                                  p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERTICAL));
> @@ -204,7 +204,7 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns
>
>          if (last) {
>                  printf("%s%s%s\n", prefix, draw_special_char(DRAW_TREE_RIGHT),
> -                                   basename(last));
> +                                   path_basename(last));
>
>                  if (!p2) {
>                          p2 = strappend(prefix, "  ");
> diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c
> index e6ee97a..48b2796 100644
> --- a/src/shared/conf-files.c
> +++ b/src/shared/conf-files.c
> @@ -73,7 +73,7 @@ static int files_add(Hashmap *h, const char *root, const char *path, const char
>                  if (!p)
>                          return -ENOMEM;
>
> -                r = hashmap_put(h, basename(p), p);
> +                r = hashmap_put(h, path_basename(p), p);
>                  if (r == -EEXIST) {
>                          log_debug("Skipping overridden file: %s.", p);
>                          free(p);
> @@ -94,7 +94,7 @@ static int base_cmp(const void *a, const void *b) {
>
>          s1 = *(char * const *)a;
>          s2 = *(char * const *)b;
> -        return strcmp(basename(s1), basename(s2));
> +        return strcmp(path_basename(s1), path_basename(s2));
>  }
>
>  static int conf_files_list_strv_internal(char ***strv, const char *suffix, const char *root, char **dirs) {
> diff --git a/src/shared/install.c b/src/shared/install.c
> index 61e572b..5e3af30 100644
> --- a/src/shared/install.c
> +++ b/src/shared/install.c
> @@ -309,7 +309,7 @@ static int remove_marked_symlinks_fd(
>
>                          found =
>                                  set_get(remove_symlinks_to, dest) ||
> -                                set_get(remove_symlinks_to, basename(dest));
> +                                set_get(remove_symlinks_to, path_basename(dest));
>
>                          if (!found)
>                                  continue;
> @@ -476,7 +476,7 @@ static int find_symlinks_fd(
>                          if (path_is_absolute(name))
>                                  found_dest = path_equal(dest, name);
>                          else
> -                                found_dest = streq(basename(dest), name);
> +                                found_dest = streq(path_basename(dest), name);
>
>                          if (found_path && found_dest) {
>                                  _cleanup_free_ char *t = NULL;
> @@ -736,7 +736,7 @@ int unit_file_link(
>                  char *fn;
>                  struct stat st;
>
> -                fn = basename(*i);
> +                fn = path_basename(*i);
>
>                  if (!path_is_absolute(*i) ||
>                      !unit_name_is_valid(fn, TEMPLATE_VALID)) {
> @@ -875,7 +875,7 @@ static int install_info_add(
>          assert(name || path);
>
>          if (!name)
> -                name = basename(path);
> +                name = path_basename(path);
>
>          if (!unit_name_is_valid(name, TEMPLATE_VALID))
>                  return -EINVAL;
> @@ -1457,7 +1457,7 @@ static int install_context_mark_for_removal(
>                          char *unit_file;
>
>                          if (i->path) {
> -                                unit_file = basename(i->path);
> +                                unit_file = path_basename(i->path);
>
>                                  if (unit_name_is_instance(unit_file))
>                                          /* unit file named as instance exists, thus all symlinks
> @@ -1671,7 +1671,7 @@ int unit_file_get_default(
>                  else if (r < 0)
>                          return r;
>                  else
> -                        n = strdup(basename(tmp));
> +                        n = strdup(path_basename(tmp));
>
>                  if (!n)
>                          return -ENOMEM;
> @@ -2141,7 +2141,7 @@ int unit_file_get_list(
>                                  f->state = UNIT_FILE_STATIC;
>
>                  found:
> -                        r = hashmap_put(h, basename(f->path), f);
> +                        r = hashmap_put(h, path_basename(f->path), f);
>                          if (r < 0)
>                                  return r;
>                          f = NULL; /* prevent cleanup */
> diff --git a/src/shared/path-util.c b/src/shared/path-util.c
> index 67566bc..9fbe900 100644
> --- a/src/shared/path-util.c
> +++ b/src/shared/path-util.c
> @@ -45,6 +45,14 @@ bool is_path(const char *p) {
>          return !!strchr(p, '/');
>  }
>
> +#ifndef __GLIBC__
> +char *path_basename(const char *path) {
> +        char *res = strrchr(path, '/');
> +
> +        return res ? res+1 : (char *)path;
> +}
> +#endif
> +
>  int path_get_parent(const char *path, char **_r) {
>          const char *e, *a = NULL, *b = NULL, *p;
>          char *r;
> diff --git a/src/shared/path-util.h b/src/shared/path-util.h
> index d85291b..ec2b3cf 100644
> --- a/src/shared/path-util.h
> +++ b/src/shared/path-util.h
> @@ -36,6 +36,11 @@
>  #endif
>
>  bool is_path(const char *p) _pure_;
> +#ifdef __GLIBC__
> +#define path_basename basename
> +#else
> +char *path_basename(const char *path);
> +#endif
>  char** path_split_and_make_absolute(const char *p);
>  int path_get_parent(const char *path, char **parent);
>  bool path_is_absolute(const char *p) _pure_;
> diff --git a/src/shared/util.c b/src/shared/util.c
> index 76899f5..94aa176 100644
> --- a/src/shared/util.c
> +++ b/src/shared/util.c
> @@ -6839,7 +6839,7 @@ char *tempfn_xxxxxx(const char *p) {
>          if (!t)
>                  return NULL;
>
> -        fn = basename(p);
> +        fn = path_basename(p);
>          k = fn - p;
>
>          strcpy(stpcpy(stpcpy(mempcpy(t, p, k), "."), fn), "XXXXXX");
> @@ -6860,7 +6860,7 @@ char *tempfn_random(const char *p) {
>          if (!t)
>                  return NULL;
>
> -        fn = basename(p);
> +        fn = path_basename(p);
>          k = fn - p;
>
>          x = stpcpy(stpcpy(mempcpy(t, p, k), "."), fn);
> diff --git a/src/shared/utmp-wtmp.c b/src/shared/utmp-wtmp.c
> index 619d6d1..6dcc5e9 100644
> --- a/src/shared/utmp-wtmp.c
> +++ b/src/shared/utmp-wtmp.c
> @@ -225,7 +225,7 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line
>          strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id));
>
>          if (line)
> -                strncpy(store.ut_line, basename(line), sizeof(store.ut_line));
> +                strncpy(store.ut_line, path_basename(line), sizeof(store.ut_line));
>
>          return write_entry_both(&store);
>  }
> diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
> index 9012128..d782532 100644
> --- a/src/systemctl/systemctl.c
> +++ b/src/systemctl/systemctl.c
> @@ -1244,7 +1244,7 @@ static int compare_unit_file_list(const void *a, const void *b) {
>                          return r;
>          }
>
> -        return strcasecmp(basename(u->path), basename(v->path));
> +        return strcasecmp(path_basename(u->path), path_basename(v->path));
>  }
>
>  static bool output_show_unit_file(const UnitFileList *u, char **patterns) {
> @@ -1254,7 +1254,7 @@ static bool output_show_unit_file(const UnitFileList *u, char **patterns) {
>                  char **pattern;
>
>                  STRV_FOREACH(pattern, patterns)
> -                        if (fnmatch(*pattern, basename(u->path), FNM_NOESCAPE) == 0)
> +                        if (fnmatch(*pattern, path_basename(u->path), FNM_NOESCAPE) == 0)
>                                  return true;
>                  return false;
>          }
> @@ -1270,7 +1270,7 @@ static void output_unit_file_list(const UnitFileList *units, unsigned c) {
>          state_cols = strlen("STATE");
>
>          for (u = units; u < units + c; u++) {
> -                max_id_len = MAX(max_id_len, strlen(basename(u->path)));
> +                max_id_len = MAX(max_id_len, strlen(path_basename(u->path)));
>                  state_cols = MAX(state_cols, strlen(unit_file_state_to_string(u->state)));
>          }
>
> @@ -1306,7 +1306,7 @@ static void output_unit_file_list(const UnitFileList *units, unsigned c) {
>                  } else
>                          on = off = "";
>
> -                id = basename(u->path);
> +                id = path_basename(u->path);
>
>                  e = arg_full ? NULL : ellipsize(id, id_cols, 33);
>
> @@ -3300,7 +3300,7 @@ static void print_status_info(
>
>                          last = ! (*(dropin + 1) && startswith(*(dropin + 1), dir));
>
> -                        printf("%s%s", basename(*dropin), last ? "\n" : ", ");
> +                        printf("%s%s", path_basename(*dropin), last ? "\n" : ", ");
>                  }
>          }
>
> @@ -5038,7 +5038,7 @@ static int enable_sysv_units(const char *verb, char **args) {
>                  if (!isempty(arg_root))
>                          argv[c++] = q = strappend("--root=", arg_root);
>
> -                argv[c++] = basename(p);
> +                argv[c++] = path_basename(p);
>                  argv[c++] =
>                          streq(verb, "enable") ? "on" :
>                          streq(verb, "disable") ? "off" : "--level=5";
> diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
> index 43bcaa8..510e247 100644
> --- a/src/sysv-generator/sysv-generator.c
> +++ b/src/sysv-generator/sysv-generator.c
> @@ -454,7 +454,7 @@ static int load_sysv(SysvStub *s) {
>                                          if (!n)
>                                                  return -ENOMEM;
>
> -                                        r = sysv_translate_facility(n, basename(s->path), &m);
> +                                        r = sysv_translate_facility(n, path_basename(s->path), &m);
>
>                                          if (r < 0)
>                                                  return r;
> @@ -516,7 +516,7 @@ static int load_sysv(SysvStub *s) {
>                                          if (!n)
>                                                  return -ENOMEM;
>
> -                                        r = sysv_translate_facility(n, basename(s->path), &m);
> +                                        r = sysv_translate_facility(n, path_basename(s->path), &m);
>                                          if (r < 0) {
>                                                  log_error_unit(s->name,
>                                                                 "[%s:%u] Failed to translate LSB dependency %s, ignoring: %s",
> diff --git a/src/test/test-install.c b/src/test/test-install.c
> index b0f77a1..c4bd520 100644
> --- a/src/test/test-install.c
> +++ b/src/test/test-install.c
> @@ -58,7 +58,7 @@ int main(int argc, char* argv[]) {
>          HASHMAP_FOREACH(p, h, i) {
>                  UnitFileState s;
>
> -                s = unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(p->path));
> +                s = unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(p->path));
>
>                  assert_se(p->state == s);
>
> @@ -176,7 +176,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == UNIT_FILE_ENABLED);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == UNIT_FILE_ENABLED);
>
>          log_error("disable files2");
>          changes = NULL;
> @@ -188,7 +188,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
>
>          log_error("link files2");
>          changes = NULL;
> @@ -200,7 +200,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == UNIT_FILE_LINKED);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == UNIT_FILE_LINKED);
>
>          log_error("disable files2");
>          changes = NULL;
> @@ -212,7 +212,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
>
>          log_error("link files2");
>          changes = NULL;
> @@ -224,7 +224,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == UNIT_FILE_LINKED);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == UNIT_FILE_LINKED);
>
>          log_error("reenable files2");
>          changes = NULL;
> @@ -236,7 +236,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == UNIT_FILE_ENABLED);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == UNIT_FILE_ENABLED);
>
>          log_error("disable files2");
>          changes = NULL;
> @@ -248,7 +248,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files2[0])) == _UNIT_FILE_STATE_INVALID);
>          log_error("preset files");
>          changes = NULL;
>          n_changes = 0;
> @@ -259,7 +259,7 @@ int main(int argc, char* argv[]) {
>          dump_changes(changes, n_changes);
>          unit_file_changes_free(changes, n_changes);
>
> -        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, basename(files[0])) == UNIT_FILE_ENABLED);
> +        assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, NULL, path_basename(files[0])) == UNIT_FILE_ENABLED);
>
>          return 0;
>  }
> diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c
> index 01afb3e..ab099ba 100644
> --- a/src/test/test-path-util.c
> +++ b/src/test/test-path-util.c
> @@ -52,10 +52,10 @@ static void test_path(void) {
>          assert_se(is_path("a/b"));
>          assert_se(!is_path("."));
>
> -        assert_se(streq(basename("./aa/bb/../file.da."), "file.da."));
> -        assert_se(streq(basename("/aa///.file"), ".file"));
> -        assert_se(streq(basename("/aa///file..."), "file..."));
> -        assert_se(streq(basename("file.../"), ""));
> +        assert_se(streq(path_basename("./aa/bb/../file.da."), "file.da."));
> +        assert_se(streq(path_basename("/aa///.file"), ".file"));
> +        assert_se(streq(path_basename("/aa///file..."), "file..."));
> +        assert_se(streq(path_basename("file.../"), ""));
>
>  #define test_parent(x, y) {                                \
>                  _cleanup_free_ char *z = NULL;             \
> --
> 2.1.0
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list