Projects STRLCPY criu Commits de39bd2b
🤬
  • sk-unix: simplify error handling in unix_resolve_name_old

    As we now don't have any calls to free in this function we can replace
    all lables with explicit returns.
    
    While on it: Replace useless -errno and 1 returns with -1 as from the
    very first implementation of unix_resolve_name (it changed name to _old
    later) in [1] any non-zero return was treated as error.
    
    6d785e6cd ("unix: resolve a socket file when a socket descriptor is
    available") [1]
    
    Signed-off-by: Pavel Tikhomirov <[email protected]>
  • Loading...
  • Pavel Tikhomirov committed with Andrei Vagin 1 year ago
    de39bd2b
    1 parent d93409cf
  • ■ ■ ■ ■ ■ ■
    criu/sk-unix.c
    skipped 595 lines
    596 596   ns = lookup_ns_by_id(root_item->ids->mnt_ns_id, &mnt_ns_desc);
    597 597   if (!ns) {
    598 598   pr_err("Failed to lookup ns by mnt id %d\n", ue->mnt_id);
    599  - ret = -ENOENT;
    600  - goto out;
     599 + return -1;
    601 600   }
    602 601   
    603 602   mntns_root = mntns_get_root_fd(ns);
    604 603   if (mntns_root < 0) {
    605 604   pr_err("Failed to lookup mntns root for ns %d\n", ns->id);
    606  - ret = -ENOENT;
    607  - goto out;
     605 + return -1;
    608 606   }
    609 607   
    610 608   if (name[0] != '/') {
    skipped 4 lines
    615 613   
    616 614   ret = resolve_rel_name(id, d, p, &ue->name_dir);
    617 615   if (ret < 0)
    618  - goto out;
    619  - goto postprone;
     616 + return -1;
     617 + return 0;
    620 618   }
    621 619   
    622 620   snprintf(rpath, sizeof(rpath), ".%s", name);
    623 621   if (fstatat(mntns_root, rpath, &st, 0)) {
    624 622   if (errno != ENOENT) {
    625  - pr_warn("Can't stat socket %#" PRIx32 "(%s), skipping: %s (err %d)\n", id, rpath,
    626  - strerror(errno), errno);
    627  - goto skip;
     623 + pr_perror("Can't stat socket %#" PRIx32 "(%s)", id, rpath);
     624 + return -1;
    628 625   }
    629 626   
    630 627   pr_info("unix: Dropping path %s for unlinked sk %#x\n", name, id);
    skipped 11 lines
    642 639   
    643 640   d->deleted = deleted;
    644 641   
    645  -postprone:
    646 642   return 0;
    647  - 
    648  -out:
    649  - return ret;
    650  -skip:
    651  - ret = 1;
    652  - goto out;
    653 643  }
    654 644   
    655 645  static int unix_resolve_name(int lfd, uint32_t id, struct unix_sk_desc *d, UnixSkEntry *ue, const struct fd_parms *p)
    skipped 1732 lines
Please wait...
Page is in error, reload to recover