From 8ad6cfa33d6a37605599be5673c4acecc7eca5af Mon Sep 17 00:00:00 2001 From: gramanas Date: Sun, 28 Oct 2018 11:41:49 +0200 Subject: Add root attribute in list, finish manpage --- src/ckutil.c | 13 +++++++++++++ src/ckutil.h | 2 ++ src/dblayer.c | 12 ++++++++++++ 3 files changed, 27 insertions(+) (limited to 'src') diff --git a/src/ckutil.c b/src/ckutil.c index f292e8e..06d12da 100644 --- a/src/ckutil.c +++ b/src/ckutil.c @@ -180,3 +180,16 @@ int util_own_grp_copy(const char *dest, const char *original) { } return 0; } + +int util_is_link_owned_by_root(const char *link) { + if (!link) { + return 0; + } + struct stat buf; + if (!lstat(link, &buf)) { + if (buf.st_uid == (uid_t)0) { + return 1; + } + } + return 0; +} diff --git a/src/ckutil.h b/src/ckutil.h index d653116..9f3cb39 100644 --- a/src/ckutil.h +++ b/src/ckutil.h @@ -93,4 +93,6 @@ extern int util_symlink_file(const char *path, const char* dest); /* Chnage owner and group of `new` and make it like `old`*/ extern int util_own_grp_copy(const char *new, const char* old); + +extern int util_is_link_owned_by_root(const char *link); #endif // CKUTIL_H diff --git a/src/dblayer.c b/src/dblayer.c index 33e1682..f517dbe 100644 --- a/src/dblayer.c +++ b/src/dblayer.c @@ -526,6 +526,10 @@ int get_program_paths(DB *db, cklist *ckl, const char* pName, int bname, int att if (sqlite3_column_int(stmt, 2)) { strcat(entry, " [p]"); } + /* root */ + if (util_is_link_owned_by_root((char *)sqlite3_column_text(stmt, 0))) { + strcat(entry, " [root]"); + } } list_add(ckl, entry); free(tmp); @@ -560,6 +564,10 @@ int list_get_paths(DB *db, cklist *ckl, int attr) { if (sqlite3_column_int(stmt, 2)) { strcat(path, " [p]"); } + /* root */ + if (util_is_link_owned_by_root((char *)sqlite3_column_text(stmt, 0))) { + strcat(path, " [root]"); + } } list_add(ckl, path); } @@ -640,6 +648,10 @@ int list_get_path_program_tree(DB *db, cklist *ckl, int attr) { if (sqlite3_column_int(stmt2, 2)) { strcat(treePath, " [p]"); } + /* root */ + if (util_is_link_owned_by_root((char *)sqlite3_column_text(stmt2, 0))) { + strcat(treePath, " [root]"); + } } list_add(ckl, treePath); } -- cgit v1.2.3