From 506ce7948f7cb4a8df5cac7c0080ee07bf4f82d9 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 25 Apr 2013 13:09:58 +0200 Subject: [PATCH] 2.23-1: upgrade 2.23-rc2 -> 2.23 Signed-off-by: Karel Zak --- .gitignore | 1 + ...nt.nfs-segfault-rely-on-assert-rathe.patch | 1340 ----------------- sources | 2 +- util-linux.spec | 20 +- 4 files changed, 16 insertions(+), 1347 deletions(-) delete mode 100644 0001-libmount-fix-mount.nfs-segfault-rely-on-assert-rathe.patch diff --git a/.gitignore b/.gitignore index 94ddde1..3c0a5a5 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /util-linux-2.22.2.tar.xz /util-linux-2.23-rc1.tar.xz /util-linux-2.23-rc2.tar.xz +/util-linux-2.23.tar.xz diff --git a/0001-libmount-fix-mount.nfs-segfault-rely-on-assert-rathe.patch b/0001-libmount-fix-mount.nfs-segfault-rely-on-assert-rathe.patch deleted file mode 100644 index a2d2223..0000000 --- a/0001-libmount-fix-mount.nfs-segfault-rely-on-assert-rathe.patch +++ /dev/null @@ -1,1340 +0,0 @@ -From 4569bbeab783632c81ee14793da84b3e29444543 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Fri, 12 Apr 2013 12:35:34 +0200 -Subject: [PATCH] libmount: fix mount.nfs segfault, rely on assert() rather - than on nonnull - -We use - mnt_optstr_append_option(&o, mnt_fs_get_vfs_options(fs), NULL); - -in mount.nfs, unfortunately mnt_optstr_append_option() has been marked -ass nonnull(1, 2). That's wrong because append and prepend should -robust enough to accept NULL as option name. - -The patch also removes almost all __attribute__((nonnull). It seems -better to rely on assert() to have usable feedback. In many cases -(nonnull) is premature optimization for the library. This attribute -makes sense for things like strlen() or so... - -Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=948274 -Signed-off-by: Karel Zak ---- - libmount/src/context.c | 55 ++++++++++-- - libmount/src/fs.c | 34 ++++++-- - libmount/src/libmount.h.in | 202 ++++++++++++++++----------------------------- - libmount/src/lock.c | 2 + - libmount/src/mountP.h | 4 +- - libmount/src/optstr.c | 26 +++++- - libmount/src/tab_parse.c | 8 +- - libmount/src/tab_update.c | 13 ++- - libmount/src/utils.c | 9 +- - libmount/src/version.c | 5 ++ - 10 files changed, 202 insertions(+), 156 deletions(-) - -diff --git a/libmount/src/context.c b/libmount/src/context.c -index 614d3f3..38f80de 100644 ---- a/libmount/src/context.c -+++ b/libmount/src/context.c -@@ -196,6 +196,7 @@ int mnt_reset_context(struct libmnt_context *cxt) - */ - int mnt_context_reset_status(struct libmnt_context *cxt) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -207,6 +208,7 @@ int mnt_context_reset_status(struct libmnt_context *cxt) - - static int set_flag(struct libmnt_context *cxt, int flag, int enable) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - if (enable) { -@@ -227,7 +229,6 @@ static int set_flag(struct libmnt_context *cxt, int flag, int enable) - */ - int mnt_context_is_restricted(struct libmnt_context *cxt) - { -- assert(cxt); - return cxt->restricted; - } - -@@ -270,6 +271,7 @@ int mnt_context_is_restricted(struct libmnt_context *cxt) - */ - int mnt_context_set_optsmode(struct libmnt_context *cxt, int mode) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - cxt->optsmode = mode; -@@ -285,6 +287,7 @@ int mnt_context_set_optsmode(struct libmnt_context *cxt, int mode) - - int mnt_context_get_optsmode(struct libmnt_context *cxt) - { -+ assert(cxt); - return cxt->optsmode; - } - -@@ -663,6 +666,7 @@ int mnt_context_set_fs(struct libmnt_context *cxt, struct libmnt_fs *fs) - */ - struct libmnt_fs *mnt_context_get_fs(struct libmnt_context *cxt) - { -+ assert(cxt); - if (!cxt) - return NULL; - if (!cxt->fs) { -@@ -681,6 +685,7 @@ struct libmnt_fs *mnt_context_get_fs(struct libmnt_context *cxt) - */ - int mnt_context_set_source(struct libmnt_context *cxt, const char *source) - { -+ assert(cxt); - return mnt_fs_set_source(mnt_context_get_fs(cxt), source); - } - -@@ -692,6 +697,7 @@ int mnt_context_set_source(struct libmnt_context *cxt, const char *source) - */ - const char *mnt_context_get_source(struct libmnt_context *cxt) - { -+ assert(cxt); - return mnt_fs_get_source(mnt_context_get_fs(cxt)); - } - -@@ -704,6 +710,7 @@ const char *mnt_context_get_source(struct libmnt_context *cxt) - */ - int mnt_context_set_target(struct libmnt_context *cxt, const char *target) - { -+ assert(cxt); - return mnt_fs_set_target(mnt_context_get_fs(cxt), target); - } - -@@ -715,6 +722,7 @@ int mnt_context_set_target(struct libmnt_context *cxt, const char *target) - */ - const char *mnt_context_get_target(struct libmnt_context *cxt) - { -+ assert(cxt); - return mnt_fs_get_target(mnt_context_get_fs(cxt)); - } - -@@ -731,6 +739,7 @@ const char *mnt_context_get_target(struct libmnt_context *cxt) - */ - int mnt_context_set_fstype(struct libmnt_context *cxt, const char *fstype) - { -+ assert(cxt); - return mnt_fs_set_fstype(mnt_context_get_fs(cxt), fstype); - } - -@@ -742,6 +751,7 @@ int mnt_context_set_fstype(struct libmnt_context *cxt, const char *fstype) - */ - const char *mnt_context_get_fstype(struct libmnt_context *cxt) - { -+ assert(cxt); - return mnt_fs_get_fstype(mnt_context_get_fs(cxt)); - } - -@@ -754,6 +764,7 @@ const char *mnt_context_get_fstype(struct libmnt_context *cxt) - */ - int mnt_context_set_options(struct libmnt_context *cxt, const char *optstr) - { -+ assert(cxt); - return mnt_fs_set_options(mnt_context_get_fs(cxt), optstr); - } - -@@ -766,6 +777,7 @@ int mnt_context_set_options(struct libmnt_context *cxt, const char *optstr) - */ - int mnt_context_append_options(struct libmnt_context *cxt, const char *optstr) - { -+ assert(cxt); - return mnt_fs_append_options(mnt_context_get_fs(cxt), optstr); - } - -@@ -784,6 +796,7 @@ int mnt_context_append_options(struct libmnt_context *cxt, const char *optstr) - */ - const char *mnt_context_get_options(struct libmnt_context *cxt) - { -+ assert(cxt); - return mnt_fs_get_options(mnt_context_get_fs(cxt)); - } - -@@ -800,6 +813,7 @@ int mnt_context_set_fstype_pattern(struct libmnt_context *cxt, const char *patte - { - char *p = NULL; - -+ assert(cxt); - if (!cxt) - return -EINVAL; - if (pattern) { -@@ -825,6 +839,7 @@ int mnt_context_set_options_pattern(struct libmnt_context *cxt, const char *patt - { - char *p = NULL; - -+ assert(cxt); - if (!cxt) - return -EINVAL; - if (pattern) { -@@ -856,6 +871,7 @@ int mnt_context_set_options_pattern(struct libmnt_context *cxt, const char *patt - */ - int mnt_context_set_fstab(struct libmnt_context *cxt, struct libmnt_table *tb) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - if (!(cxt->flags & MNT_FL_EXTERN_FSTAB)) -@@ -879,9 +895,9 @@ int mnt_context_get_fstab(struct libmnt_context *cxt, struct libmnt_table **tb) - { - struct libmnt_cache *cache; - -+ assert(cxt); - if (!cxt) - return -EINVAL; -- - if (!cxt->fstab) { - int rc; - -@@ -921,9 +937,9 @@ int mnt_context_get_mtab(struct libmnt_context *cxt, struct libmnt_table **tb) - { - struct libmnt_cache *cache; - -+ assert(cxt); - if (!cxt) - return -EINVAL; -- - if (!cxt->mtab) { - int rc; - -@@ -962,6 +978,7 @@ int mnt_context_set_tabfilter(struct libmnt_context *cxt, - int (*fltr)(struct libmnt_fs *, void *), - void *data) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -1002,6 +1019,8 @@ int mnt_context_get_table(struct libmnt_context *cxt, - struct libmnt_cache *cache; - int rc; - -+ assert(cxt); -+ assert(tb); - if (!cxt || !tb) - return -EINVAL; - -@@ -1042,6 +1061,7 @@ int mnt_context_get_table(struct libmnt_context *cxt, - int mnt_context_set_tables_errcb(struct libmnt_context *cxt, - int (*cb)(struct libmnt_table *tb, const char *filename, int line)) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -1085,6 +1105,7 @@ int mnt_context_set_cache(struct libmnt_context *cxt, struct libmnt_cache *cache - */ - struct libmnt_cache *mnt_context_get_cache(struct libmnt_context *cxt) - { -+ assert(cxt); - if (!cxt || mnt_context_is_nocanonicalize(cxt)) - return NULL; - -@@ -1112,9 +1133,9 @@ int mnt_context_set_passwd_cb(struct libmnt_context *cxt, - char *(*get)(struct libmnt_context *), - void (*release)(struct libmnt_context *, char *)) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; -- - cxt->pwd_get_cb = get; - cxt->pwd_release_cb = release; - return 0; -@@ -1142,6 +1163,7 @@ int mnt_context_set_passwd_cb(struct libmnt_context *cxt, - */ - struct libmnt_lock *mnt_context_get_lock(struct libmnt_context *cxt) - { -+ assert(cxt); - /* - * DON'T call this function within libmount, it will always allocate - * the lock. The mnt_update_* functions are able to allocate the lock -@@ -1181,6 +1203,7 @@ struct libmnt_lock *mnt_context_get_lock(struct libmnt_context *cxt) - */ - int mnt_context_set_mflags(struct libmnt_context *cxt, unsigned long flags) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -1213,6 +1236,8 @@ int mnt_context_get_mflags(struct libmnt_context *cxt, unsigned long *flags) - int rc = 0; - struct list_head *p; - -+ assert(cxt); -+ assert(flags); - if (!cxt || !flags) - return -EINVAL; - -@@ -1249,6 +1274,7 @@ int mnt_context_get_mflags(struct libmnt_context *cxt, unsigned long *flags) - */ - int mnt_context_set_user_mflags(struct libmnt_context *cxt, unsigned long flags) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - cxt->user_mountflags = flags; -@@ -1268,6 +1294,9 @@ int mnt_context_set_user_mflags(struct libmnt_context *cxt, unsigned long flags) - int mnt_context_get_user_mflags(struct libmnt_context *cxt, unsigned long *flags) - { - int rc = 0; -+ -+ assert(cxt); -+ assert(flags); - if (!cxt || !flags) - return -EINVAL; - -@@ -1299,6 +1328,7 @@ int mnt_context_get_user_mflags(struct libmnt_context *cxt, unsigned long *flags - */ - int mnt_context_set_mountdata(struct libmnt_context *cxt, void *data) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - cxt->mountdata = data; -@@ -1908,6 +1938,7 @@ int mnt_context_apply_fstab(struct libmnt_context *cxt) - */ - int mnt_context_tab_applied(struct libmnt_context *cxt) - { -+ assert(cxt); - return cxt->flags & MNT_FL_TAB_APPLIED; - } - -@@ -1949,6 +1980,7 @@ int mnt_context_propagation_only(struct libmnt_context *cxt) - */ - int mnt_context_get_status(struct libmnt_context *cxt) - { -+ assert(cxt); - return !cxt->syscall_status || !cxt->helper_exec_status; - } - -@@ -1960,6 +1992,7 @@ int mnt_context_get_status(struct libmnt_context *cxt) - */ - int mnt_context_helper_executed(struct libmnt_context *cxt) - { -+ assert(cxt); - return cxt->helper_exec_status != 1; - } - -@@ -1972,6 +2005,7 @@ int mnt_context_helper_executed(struct libmnt_context *cxt) - */ - int mnt_context_get_helper_status(struct libmnt_context *cxt) - { -+ assert(cxt); - return cxt->helper_status; - } - -@@ -1983,6 +2017,7 @@ int mnt_context_get_helper_status(struct libmnt_context *cxt) - */ - int mnt_context_syscall_called(struct libmnt_context *cxt) - { -+ assert(cxt); - return cxt->syscall_status != 1; - } - -@@ -1997,9 +2032,9 @@ int mnt_context_syscall_called(struct libmnt_context *cxt) - */ - int mnt_context_get_syscall_errno(struct libmnt_context *cxt) - { -+ assert(cxt); - if (cxt->syscall_status < 0) - return -cxt->syscall_status; -- - return 0; - } - -@@ -2017,6 +2052,7 @@ int mnt_context_get_syscall_errno(struct libmnt_context *cxt) - */ - int mnt_context_set_syscall_status(struct libmnt_context *cxt, int status) - { -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -2063,8 +2099,11 @@ int mnt_context_strerror(struct libmnt_context *cxt __attribute__((__unused__)), - int mnt_context_init_helper(struct libmnt_context *cxt, int action, - int flags __attribute__((__unused__))) - { -- int rc = mnt_context_disable_helpers(cxt, TRUE); -+ int rc; - -+ assert(cxt); -+ -+ rc = mnt_context_disable_helpers(cxt, TRUE); - if (!rc) - rc = set_flag(cxt, MNT_FL_HELPER, 1); - if (!rc) -@@ -2115,6 +2154,7 @@ int mnt_context_is_fs_mounted(struct libmnt_context *cxt, - struct libmnt_table *mtab; - int rc; - -+ assert(cxt); - if (!cxt || !fs || !mounted) - return -EINVAL; - -@@ -2130,6 +2170,7 @@ static int mnt_context_add_child(struct libmnt_context *cxt, pid_t pid) - { - pid_t *pids; - -+ assert(cxt); - if (!cxt) - return -EINVAL; - -@@ -2149,6 +2190,7 @@ int mnt_fork_context(struct libmnt_context *cxt) - int rc = 0; - pid_t pid; - -+ assert(cxt); - if (!mnt_context_is_parent(cxt)) - return -EINVAL; - -@@ -2182,6 +2224,7 @@ int mnt_context_wait_for_children(struct libmnt_context *cxt, - { - int i; - -+ assert(cxt); - if (!cxt) - return -EINVAL; - -diff --git a/libmount/src/fs.c b/libmount/src/fs.c -index bb9006d..c95cdc7 100644 ---- a/libmount/src/fs.c -+++ b/libmount/src/fs.c -@@ -131,7 +131,6 @@ struct libmnt_fs *mnt_copy_fs(struct libmnt_fs *dest, - - if (!src) - return NULL; -- - if (!dest) { - dest = mnt_new_fs(); - if (!dest) -@@ -197,6 +196,7 @@ struct libmnt_fs *mnt_copy_mtab_fs(const struct libmnt_fs *fs) - { - struct libmnt_fs *n = mnt_new_fs(); - -+ assert(fs); - if (!n) - return NULL; - -@@ -249,6 +249,7 @@ err: - */ - void *mnt_fs_get_userdata(struct libmnt_fs *fs) - { -+ assert(fs); - return fs ? fs->userdata : NULL; - } - -@@ -263,6 +264,7 @@ void *mnt_fs_get_userdata(struct libmnt_fs *fs) - */ - int mnt_fs_set_userdata(struct libmnt_fs *fs, void *data) - { -+ assert(fs); - if (!fs) - return -EINVAL; - fs->userdata = data; -@@ -303,6 +305,7 @@ const char *mnt_fs_get_srcpath(struct libmnt_fs *fs) - */ - const char *mnt_fs_get_source(struct libmnt_fs *fs) - { -+ assert(fs); - return fs ? fs->source : NULL; - } - -@@ -346,6 +349,7 @@ int mnt_fs_set_source(struct libmnt_fs *fs, const char *source) - char *p = NULL; - int rc; - -+ assert(fs); - if (!fs) - return -EINVAL; - -@@ -375,6 +379,7 @@ int mnt_fs_streq_srcpath(struct libmnt_fs *fs, const char *path) - { - const char *p; - -+ assert(fs); - if (!fs) - return 0; - -@@ -401,6 +406,7 @@ int mnt_fs_streq_srcpath(struct libmnt_fs *fs, const char *path) - */ - int mnt_fs_streq_target(struct libmnt_fs *fs, const char *path) - { -+ assert(fs); - return fs && streq_except_trailing_slash(mnt_fs_get_target(fs), path); - } - -@@ -439,6 +445,7 @@ int mnt_fs_streq_target(struct libmnt_fs *fs, const char *path) - */ - int mnt_fs_get_tag(struct libmnt_fs *fs, const char **name, const char **value) - { -+ assert(fs); - if (fs == NULL || !fs->tagname) - return -EINVAL; - if (name) -@@ -474,7 +481,6 @@ int mnt_fs_set_target(struct libmnt_fs *fs, const char *target) - char *p = NULL; - - assert(fs); -- - if (!fs) - return -EINVAL; - if (target) { -@@ -506,6 +512,7 @@ static int mnt_fs_get_flags(struct libmnt_fs *fs) - */ - int mnt_fs_get_propagation(struct libmnt_fs *fs, unsigned long *flags) - { -+ assert(fs); - if (!fs || !flags) - return -EINVAL; - -@@ -547,6 +554,7 @@ int mnt_fs_is_kernel(struct libmnt_fs *fs) - */ - int mnt_fs_is_swaparea(struct libmnt_fs *fs) - { -+ assert(fs); - return mnt_fs_get_flags(fs) & MNT_FS_SWAP; - } - -@@ -558,6 +566,7 @@ int mnt_fs_is_swaparea(struct libmnt_fs *fs) - */ - int mnt_fs_is_pseudofs(struct libmnt_fs *fs) - { -+ assert(fs); - return mnt_fs_get_flags(fs) & MNT_FS_PSEUDO; - } - -@@ -569,6 +578,7 @@ int mnt_fs_is_pseudofs(struct libmnt_fs *fs) - */ - int mnt_fs_is_netfs(struct libmnt_fs *fs) - { -+ assert(fs); - return mnt_fs_get_flags(fs) & MNT_FS_NET; - } - -@@ -622,6 +632,7 @@ int mnt_fs_set_fstype(struct libmnt_fs *fs, const char *fstype) - { - char *p = NULL; - -+ assert(fs); - if (!fs) - return -EINVAL; - if (fstype) { -@@ -700,9 +711,7 @@ char *mnt_fs_strdup_options(struct libmnt_fs *fs) - char *res; - - assert(fs); -- - errno = 0; -- - if (fs->optstr) - return strdup(fs->optstr); - -@@ -758,7 +767,6 @@ int mnt_fs_set_options(struct libmnt_fs *fs, const char *optstr) - char *v = NULL, *f = NULL, *u = NULL, *n = NULL; - - assert(fs); -- - if (!fs) - return -EINVAL; - if (optstr) { -@@ -801,7 +809,6 @@ int mnt_fs_append_options(struct libmnt_fs *fs, const char *optstr) - int rc; - - assert(fs); -- - if (!fs) - return -EINVAL; - if (!optstr) -@@ -842,7 +849,6 @@ int mnt_fs_prepend_options(struct libmnt_fs *fs, const char *optstr) - int rc; - - assert(fs); -- - if (!fs) - return -EINVAL; - if (!optstr) -@@ -932,6 +938,7 @@ int mnt_fs_set_attributes(struct libmnt_fs *fs, const char *optstr) - { - char *p = NULL; - -+ assert(fs); - if (!fs) - return -EINVAL; - if (optstr) { -@@ -974,6 +981,7 @@ int mnt_fs_append_attributes(struct libmnt_fs *fs, const char *optstr) - */ - int mnt_fs_prepend_attributes(struct libmnt_fs *fs, const char *optstr) - { -+ assert(fs); - if (!fs) - return -EINVAL; - if (!optstr) -@@ -1235,6 +1243,7 @@ int mnt_fs_get_option(struct libmnt_fs *fs, const char *name, - { - char rc = 1; - -+ assert(fs); - if (!fs) - return -EINVAL; - if (fs->fs_optstr) -@@ -1260,6 +1269,9 @@ int mnt_fs_get_attribute(struct libmnt_fs *fs, const char *name, - { - char rc = 1; - -+ assert(fs); -+ if (!fs) -+ return -EINVAL; - if (fs->attrs) - rc = mnt_optstr_get_option(fs->attrs, name, value, valsz); - return rc; -@@ -1286,6 +1298,7 @@ int mnt_fs_match_target(struct libmnt_fs *fs, const char *target, - { - int rc = 0; - -+ assert(fs); - if (!fs || !target || !fs->target) - return 0; - -@@ -1330,6 +1343,7 @@ int mnt_fs_match_source(struct libmnt_fs *fs, const char *source, - char *cn; - const char *src, *t, *v; - -+ assert(fs); - if (!fs) - return 0; - -@@ -1403,6 +1417,7 @@ int mnt_fs_match_source(struct libmnt_fs *fs, const char *source, - */ - int mnt_fs_match_fstype(struct libmnt_fs *fs, const char *types) - { -+ assert(fs); - return mnt_match_fstype(fs->fstype, types); - } - -@@ -1418,6 +1433,7 @@ int mnt_fs_match_fstype(struct libmnt_fs *fs, const char *types) - */ - int mnt_fs_match_options(struct libmnt_fs *fs, const char *options) - { -+ assert(fs); - return mnt_match_options(mnt_fs_get_options(fs), options); - } - -@@ -1430,7 +1446,7 @@ int mnt_fs_match_options(struct libmnt_fs *fs, const char *options) - */ - int mnt_fs_print_debug(struct libmnt_fs *fs, FILE *file) - { -- if (!fs) -+ if (!fs || !file) - return -EINVAL; - fprintf(file, "------ fs: %p\n", fs); - fprintf(file, "source: %s\n", mnt_fs_get_source(fs)); -@@ -1514,6 +1530,8 @@ int mnt_fs_to_mntent(struct libmnt_fs *fs, struct mntent **mnt) - int rc; - struct mntent *m; - -+ assert(fs); -+ assert(mnt); - if (!fs || !mnt) - return -EINVAL; - -diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in -index 1b5df82..db479e1 100644 ---- a/libmount/src/libmount.h.in -+++ b/libmount/src/libmount.h.in -@@ -187,8 +187,7 @@ enum { - extern void mnt_init_debug(int mask); - - /* version.c */ --extern int mnt_parse_version_string(const char *ver_string) -- __ul_attribute__((nonnull)); -+extern int mnt_parse_version_string(const char *ver_string); - extern int mnt_get_library_version(const char **ver_string); - extern int mnt_get_library_features(const char ***features); - -@@ -198,10 +197,8 @@ extern char *mnt_mangle(const char *str) - extern char *mnt_unmangle(const char *str) - __ul_attribute__((warn_unused_result)); - --extern int mnt_fstype_is_netfs(const char *type) -- __ul_attribute__((nonnull)); --extern int mnt_fstype_is_pseudofs(const char *type) -- __ul_attribute__((nonnull)); -+extern int mnt_fstype_is_netfs(const char *type); -+extern int mnt_fstype_is_pseudofs(const char *type); - - extern int mnt_match_fstype(const char *type, const char *pattern) - __ul_attribute__((warn_unused_result)); -@@ -212,7 +209,7 @@ extern const char *mnt_get_swaps_path(void); - extern const char *mnt_get_mtab_path(void); - extern int mnt_has_regular_mtab(const char **mtab, int *writable); - extern char *mnt_get_mountpoint(const char *path) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - - /* cache.c */ - extern struct libmnt_cache *mnt_new_cache(void) -@@ -224,8 +221,7 @@ extern int mnt_cache_read_tags(struct libmnt_cache *cache, const char *devname); - extern int mnt_cache_device_has_tag(struct libmnt_cache *cache, - const char *devname, - const char *token, -- const char *value) -- __ul_attribute__((nonnull)); -+ const char *value); - - extern char *mnt_cache_find_tag_value(struct libmnt_cache *cache, - const char *devname, const char *token); -@@ -245,24 +241,18 @@ extern char *mnt_pretty_path(const char *path, struct libmnt_cache *cache) - - /* optstr.c */ - extern int mnt_optstr_next_option(char **optstr, char **name, size_t *namesz, -- char **value, size_t *valuesz) -- __ul_attribute__((nonnull(1))); -+ char **value, size_t *valuesz); - extern int mnt_optstr_append_option(char **optstr, const char *name, -- const char *value) -- __ul_attribute__((nonnull(1, 2))); -+ const char *value); - extern int mnt_optstr_prepend_option(char **optstr, const char *name, -- const char *value) -- __ul_attribute__((nonnull(1, 2))); -+ const char *value); - - extern int mnt_optstr_get_option(const char *optstr, const char *name, - char **value, size_t *valsz); - extern int mnt_optstr_set_option(char **optstr, const char *name, -- const char *value) -- __ul_attribute__((nonnull(1, 2))); --extern int mnt_optstr_remove_option(char **optstr, const char *name) -- __ul_attribute__((nonnull)); --extern int mnt_optstr_deduplicate_option(char **optstr, const char *name) -- __ul_attribute__((nonnull)); -+ const char *value); -+extern int mnt_optstr_remove_option(char **optstr, const char *name); -+extern int mnt_optstr_deduplicate_option(char **optstr, const char *name); - - extern int mnt_split_optstr(const char *optstr, - char **user, char **vfs, char **fs, -@@ -301,11 +291,10 @@ extern const struct libmnt_optmap *mnt_get_builtin_optmap(int id); - - /* lock.c */ - extern struct libmnt_lock *mnt_new_lock(const char *datafile, pid_t id) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern void mnt_free_lock(struct libmnt_lock *ml); - --extern void mnt_unlock_file(struct libmnt_lock *ml) -- __ul_attribute__((nonnull)); -+extern void mnt_unlock_file(struct libmnt_lock *ml); - extern int mnt_lock_file(struct libmnt_lock *ml); - extern int mnt_lock_block_signals(struct libmnt_lock *ml, int enable); - -@@ -314,27 +303,21 @@ extern struct libmnt_fs *mnt_new_fs(void) - __ul_attribute__((warn_unused_result)); - extern void mnt_free_fs(struct libmnt_fs *fs); - --extern void mnt_reset_fs(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern void mnt_reset_fs(struct libmnt_fs *fs); - extern struct libmnt_fs *mnt_copy_fs(struct libmnt_fs *dest, - const struct libmnt_fs *src) - __ul_attribute__((warn_unused_result)); --extern void *mnt_fs_get_userdata(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern void *mnt_fs_get_userdata(struct libmnt_fs *fs); - extern int mnt_fs_set_userdata(struct libmnt_fs *fs, void *data); --extern const char *mnt_fs_get_source(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_source(struct libmnt_fs *fs); - extern int mnt_fs_set_source(struct libmnt_fs *fs, const char *source); - extern const char *mnt_fs_get_srcpath(struct libmnt_fs *fs); - - extern int mnt_fs_get_tag(struct libmnt_fs *fs, const char **name, -- const char **value) -- __ul_attribute__((nonnull(1))); --extern const char *mnt_fs_get_target(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+ const char **value); -+extern const char *mnt_fs_get_target(struct libmnt_fs *fs); - extern int mnt_fs_set_target(struct libmnt_fs *fs, const char *target); --extern const char *mnt_fs_get_fstype(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_fstype(struct libmnt_fs *fs); - extern int mnt_fs_set_fstype(struct libmnt_fs *fs, const char *fstype); - - extern int mnt_fs_streq_srcpath(struct libmnt_fs *fs, const char *path) -@@ -343,11 +326,11 @@ extern int mnt_fs_streq_target(struct libmnt_fs *fs, const char *path) - __ul_attribute__((warn_unused_result)); - - extern char *mnt_fs_strdup_options(struct libmnt_fs *fs) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern const char *mnt_fs_get_options(struct libmnt_fs *fs) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern const char *mnt_fs_get_optional_fields(struct libmnt_fs *fs) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern int mnt_fs_get_propagation(struct libmnt_fs *fs, unsigned long *flags); - - extern int mnt_fs_set_options(struct libmnt_fs *fs, const char *optstr); -@@ -357,81 +340,56 @@ extern int mnt_fs_prepend_options(struct libmnt_fs *fs, const char *optstr); - extern int mnt_fs_get_option(struct libmnt_fs *fs, const char *name, - char **value, size_t *valsz); - --extern const char *mnt_fs_get_fs_options(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern const char *mnt_fs_get_vfs_options(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern const char *mnt_fs_get_user_options(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_fs_options(struct libmnt_fs *fs); -+extern const char *mnt_fs_get_vfs_options(struct libmnt_fs *fs); -+extern const char *mnt_fs_get_user_options(struct libmnt_fs *fs); - --extern const char *mnt_fs_get_attributes(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_attributes(struct libmnt_fs *fs); - extern int mnt_fs_set_attributes(struct libmnt_fs *fs, const char *optstr); - extern int mnt_fs_get_attribute(struct libmnt_fs *fs, const char *name, - char **value, size_t *valsz); - extern int mnt_fs_append_attributes(struct libmnt_fs *fs, const char *optstr); - extern int mnt_fs_prepend_attributes(struct libmnt_fs *fs, const char *optstr); - --extern int mnt_fs_get_freq(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern int mnt_fs_get_freq(struct libmnt_fs *fs); - extern int mnt_fs_set_freq(struct libmnt_fs *fs, int freq); --extern int mnt_fs_get_passno(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern int mnt_fs_get_passno(struct libmnt_fs *fs); - extern int mnt_fs_set_passno(struct libmnt_fs *fs, int passno); --extern const char *mnt_fs_get_root(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_root(struct libmnt_fs *fs); - extern int mnt_fs_set_root(struct libmnt_fs *fs, const char *root); --extern const char *mnt_fs_get_bindsrc(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_bindsrc(struct libmnt_fs *fs); - extern int mnt_fs_set_bindsrc(struct libmnt_fs *fs, const char *src); --extern int mnt_fs_get_id(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern int mnt_fs_get_parent_id(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern dev_t mnt_fs_get_devno(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern pid_t mnt_fs_get_tid(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern int mnt_fs_get_id(struct libmnt_fs *fs); -+extern int mnt_fs_get_parent_id(struct libmnt_fs *fs); -+extern dev_t mnt_fs_get_devno(struct libmnt_fs *fs); -+extern pid_t mnt_fs_get_tid(struct libmnt_fs *fs); - --extern const char *mnt_fs_get_swaptype(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern off_t mnt_fs_get_size(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern off_t mnt_fs_get_usedsize(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern int mnt_fs_get_priority(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern const char *mnt_fs_get_swaptype(struct libmnt_fs *fs); -+extern off_t mnt_fs_get_size(struct libmnt_fs *fs); -+extern off_t mnt_fs_get_usedsize(struct libmnt_fs *fs); -+extern int mnt_fs_get_priority(struct libmnt_fs *fs); - - extern int mnt_fs_match_target(struct libmnt_fs *fs, const char *target, -- struct libmnt_cache *cache) -- __ul_attribute__((nonnull(1))); -+ struct libmnt_cache *cache); - extern int mnt_fs_match_source(struct libmnt_fs *fs, const char *source, -- struct libmnt_cache *cache) -- __ul_attribute__((nonnull(1))); --extern int mnt_fs_match_fstype(struct libmnt_fs *fs, const char *types) -- __ul_attribute__((nonnull(1))); --extern int mnt_fs_match_options(struct libmnt_fs *fs, const char *options) -- __ul_attribute__((nonnull(1))); --extern int mnt_fs_print_debug(struct libmnt_fs *fs, FILE *file) -- __ul_attribute__((nonnull)); -+ struct libmnt_cache *cache); -+extern int mnt_fs_match_fstype(struct libmnt_fs *fs, const char *types); -+extern int mnt_fs_match_options(struct libmnt_fs *fs, const char *options); -+extern int mnt_fs_print_debug(struct libmnt_fs *fs, FILE *file); - --extern int mnt_fs_is_kernel(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern int mnt_fs_is_swaparea(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern int mnt_fs_is_netfs(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); --extern int mnt_fs_is_pseudofs(struct libmnt_fs *fs) -- __ul_attribute__((nonnull)); -+extern int mnt_fs_is_kernel(struct libmnt_fs *fs); -+extern int mnt_fs_is_swaparea(struct libmnt_fs *fs); -+extern int mnt_fs_is_netfs(struct libmnt_fs *fs); -+extern int mnt_fs_is_pseudofs(struct libmnt_fs *fs); - - extern void mnt_free_mntent(struct mntent *mnt); - extern int mnt_fs_to_mntent(struct libmnt_fs *fs, struct mntent **mnt); - - /* tab-parse.c */ - extern struct libmnt_table *mnt_new_table_from_file(const char *filename) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern struct libmnt_table *mnt_new_table_from_dir(const char *dirname) -- __ul_attribute__((nonnull, warn_unused_result)); -+ __ul_attribute__((warn_unused_result)); - extern int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, - const char *filename); - extern int mnt_table_parse_file(struct libmnt_table *tb, const char *filename); -@@ -484,27 +442,21 @@ extern int mnt_table_find_next_fs(struct libmnt_table *tb, - void *userdata, - struct libmnt_fs **fs); - --extern int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs) -- __ul_attribute__((nonnull)); -- -+extern int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs); - - /* tab_update.c */ - extern struct libmnt_update *mnt_new_update(void) - __ul_attribute__((warn_unused_result)); - extern void mnt_free_update(struct libmnt_update *upd); - --extern int mnt_update_is_ready(struct libmnt_update *upd) -- __ul_attribute__((nonnull)); -+extern int mnt_update_is_ready(struct libmnt_update *upd); - extern int mnt_update_set_fs(struct libmnt_update *upd, unsigned long mountflags, - const char *target, struct libmnt_fs *fs); - extern int mnt_update_table(struct libmnt_update *upd, struct libmnt_lock *lc); --extern unsigned long mnt_update_get_mflags(struct libmnt_update *upd) -- __ul_attribute__((nonnull)); -+extern unsigned long mnt_update_get_mflags(struct libmnt_update *upd); - extern int mnt_update_force_rdonly(struct libmnt_update *upd, int rdonly); --extern const char *mnt_update_get_filename(struct libmnt_update *upd) -- __ul_attribute__((nonnull)); --extern struct libmnt_fs *mnt_update_get_fs(struct libmnt_update *upd) -- __ul_attribute__((nonnull)); -+extern const char *mnt_update_get_filename(struct libmnt_update *upd); -+extern struct libmnt_fs *mnt_update_get_fs(struct libmnt_update *upd); - - /* tab_diff.c */ - enum { -@@ -578,8 +530,8 @@ extern int mnt_context_enable_loopdel(struct libmnt_context *cxt, int enable); - extern int mnt_context_enable_fork(struct libmnt_context *cxt, int enable); - extern int mnt_context_disable_swapmatch(struct libmnt_context *cxt, int disable); - --extern int mnt_context_get_optsmode(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_get_optsmode(struct libmnt_context *cxt); -+ - extern int mnt_context_is_lazy(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); - extern int mnt_context_is_rdonly_umount(struct libmnt_context *cxt) -@@ -614,28 +566,22 @@ extern int mnt_context_wait_for_children(struct libmnt_context *cxt, - int *nchildren, int *nerrs); - - extern int mnt_context_is_fs_mounted(struct libmnt_context *cxt, -- struct libmnt_fs *fs, int *mounted) -- __ul_attribute__((nonnull)); -+ struct libmnt_fs *fs, int *mounted); - extern int mnt_context_set_fs(struct libmnt_context *cxt, struct libmnt_fs *fs); --extern struct libmnt_fs *mnt_context_get_fs(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern struct libmnt_fs *mnt_context_get_fs(struct libmnt_context *cxt); - - extern int mnt_context_set_source(struct libmnt_context *cxt, const char *source); - extern int mnt_context_set_target(struct libmnt_context *cxt, const char *target); - extern int mnt_context_set_fstype(struct libmnt_context *cxt, const char *fstype); - --extern const char *mnt_context_get_source(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); --extern const char *mnt_context_get_target(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); --extern const char *mnt_context_get_fstype(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern const char *mnt_context_get_source(struct libmnt_context *cxt); -+extern const char *mnt_context_get_target(struct libmnt_context *cxt); -+extern const char *mnt_context_get_fstype(struct libmnt_context *cxt); - - extern int mnt_context_set_options(struct libmnt_context *cxt, const char *optstr); - extern int mnt_context_append_options(struct libmnt_context *cxt, const char *optstr); - --extern const char *mnt_context_get_options(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern const char *mnt_context_get_options(struct libmnt_context *cxt); - - extern int mnt_context_set_fstype_pattern(struct libmnt_context *cxt, const char *pattern); - extern int mnt_context_set_options_pattern(struct libmnt_context *cxt, const char *pattern); -@@ -659,10 +605,8 @@ extern int mnt_context_get_table(struct libmnt_context *cxt, - struct libmnt_table **tb); - extern int mnt_context_set_cache(struct libmnt_context *cxt, - struct libmnt_cache *cache); --extern struct libmnt_cache *mnt_context_get_cache(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); --extern struct libmnt_lock *mnt_context_get_lock(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern struct libmnt_cache *mnt_context_get_cache(struct libmnt_context *cxt); -+extern struct libmnt_lock *mnt_context_get_lock(struct libmnt_context *cxt); - extern int mnt_context_set_mflags(struct libmnt_context *cxt, - unsigned long flags); - extern int mnt_context_get_mflags(struct libmnt_context *cxt, -@@ -676,19 +620,14 @@ extern int mnt_context_set_mountdata(struct libmnt_context *cxt, void *data); - extern int mnt_context_apply_fstab(struct libmnt_context *cxt); - - extern int mnt_context_reset_status(struct libmnt_context *cxt); --extern int mnt_context_get_status(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_get_status(struct libmnt_context *cxt); - --extern int mnt_context_helper_executed(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); --extern int mnt_context_get_helper_status(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_helper_executed(struct libmnt_context *cxt); -+extern int mnt_context_get_helper_status(struct libmnt_context *cxt); - --extern int mnt_context_syscall_called(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_syscall_called(struct libmnt_context *cxt); - --extern int mnt_context_get_syscall_errno(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_get_syscall_errno(struct libmnt_context *cxt); - - extern int mnt_context_strerror(struct libmnt_context *cxt, char *buf, - size_t bufsiz); -@@ -720,8 +659,7 @@ extern int mnt_context_prepare_umount(struct libmnt_context *cxt) - extern int mnt_context_do_umount(struct libmnt_context *cxt); - extern int mnt_context_finalize_umount(struct libmnt_context *cxt); - --extern int mnt_context_tab_applied(struct libmnt_context *cxt) -- __ul_attribute__((nonnull)); -+extern int mnt_context_tab_applied(struct libmnt_context *cxt); - extern int mnt_context_set_syscall_status(struct libmnt_context *cxt, int status); - - /* -diff --git a/libmount/src/lock.c b/libmount/src/lock.c -index 9e583cc..e73edf5 100644 ---- a/libmount/src/lock.c -+++ b/libmount/src/lock.c -@@ -53,6 +53,8 @@ struct libmnt_lock *mnt_new_lock(const char *datafile, pid_t id) - char *lo = NULL, *ln = NULL; - size_t losz; - -+ assert(datafile); -+ - /* for flock we use "foo.lock, for mtab "foo~" - */ - losz = strlen(datafile) + sizeof(".lock"); -diff --git a/libmount/src/mountP.h b/libmount/src/mountP.h -index 065b815..e064a68 100644 ---- a/libmount/src/mountP.h -+++ b/libmount/src/mountP.h -@@ -26,7 +26,9 @@ - #define CONFIG_LIBMOUNT_DEBUG - - #ifdef CONFIG_LIBMOUNT_ASSERT --#include -+# include -+#else -+# define assert(x) - #endif - - /* -diff --git a/libmount/src/optstr.c b/libmount/src/optstr.c -index a3a5d0a..5e9e708 100644 ---- a/libmount/src/optstr.c -+++ b/libmount/src/optstr.c -@@ -169,8 +169,7 @@ int mnt_optstr_next_option(char **optstr, char **name, size_t *namesz, - return mnt_optstr_parse_next(optstr, name, namesz, value, valuesz); - } - --static int __attribute__((nonnull(1, 2))) --__mnt_optstr_append_option(char **optstr, -+static int __mnt_optstr_append_option(char **optstr, - const char *name, size_t nsz, - const char *value, size_t vsz) - { -@@ -180,6 +179,7 @@ __mnt_optstr_append_option(char **optstr, - assert(name); - assert(*name); - assert(nsz); -+ assert(optstr); - - osz = *optstr ? strlen(*optstr) : 0; - -@@ -225,6 +225,8 @@ int mnt_optstr_append_option(char **optstr, const char *name, const char *value) - { - size_t vsz, nsz; - -+ assert(optstr); -+ - if (!name || !*name) - return 0; - -@@ -248,6 +250,11 @@ int mnt_optstr_prepend_option(char **optstr, const char *name, const char *value - int rc = 0; - char *tmp = *optstr; - -+ assert(optstr); -+ -+ if (!name || !*name) -+ return 0; -+ - *optstr = NULL; - - rc = mnt_optstr_append_option(optstr, name, value); -@@ -282,6 +289,9 @@ int mnt_optstr_get_option(const char *optstr, const char *name, - struct libmnt_optloc ol; - int rc; - -+ assert(optstr); -+ assert(name); -+ - mnt_init_optloc(&ol); - - rc = mnt_optstr_locate_option((char *) optstr, name, &ol); -@@ -307,8 +317,12 @@ int mnt_optstr_get_option(const char *optstr, const char *name, - int mnt_optstr_deduplicate_option(char **optstr, const char *name) - { - int rc; -- char *begin = NULL, *end = NULL, *opt = *optstr; -+ char *begin = NULL, *end = NULL, *opt; - -+ assert(optstr); -+ assert(name); -+ -+ opt = *optstr; - do { - struct libmnt_optloc ol; - -@@ -421,6 +435,9 @@ int mnt_optstr_set_option(char **optstr, const char *name, const char *value) - char *nameend; - int rc = 1; - -+ assert(optstr); -+ assert(name); -+ - if (!optstr) - return -EINVAL; - -@@ -467,6 +484,9 @@ int mnt_optstr_remove_option(char **optstr, const char *name) - struct libmnt_optloc ol; - int rc; - -+ assert(optstr); -+ assert(name); -+ - mnt_init_optloc(&ol); - - rc = mnt_optstr_locate_option(*optstr, name, &ol); -diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c -index 7368d8c..e930fd8 100644 ---- a/libmount/src/tab_parse.c -+++ b/libmount/src/tab_parse.c -@@ -720,7 +720,6 @@ struct libmnt_table *__mnt_new_table_from_file(const char *filename, int fmt) - struct stat st; - - assert(filename); -- - if (!filename) - return NULL; - if (stat(filename, &st)) -@@ -749,6 +748,7 @@ struct libmnt_table *__mnt_new_table_from_file(const char *filename, int fmt) - */ - struct libmnt_table *mnt_new_table_from_file(const char *filename) - { -+ assert(filename); - return __mnt_new_table_from_file(filename, MNT_FMT_GUESS); - } - -@@ -763,7 +763,6 @@ struct libmnt_table *mnt_new_table_from_dir(const char *dirname) - struct libmnt_table *tb; - - assert(dirname); -- - if (!dirname) - return NULL; - tb = mnt_new_table(); -@@ -793,6 +792,7 @@ struct libmnt_table *mnt_new_table_from_dir(const char *dirname) - int mnt_table_set_parser_errcb(struct libmnt_table *tb, - int (*cb)(struct libmnt_table *tb, const char *filename, int line)) - { -+ assert(tb); - if (!tb) - return -EINVAL; - tb->errcb = cb; -@@ -807,6 +807,7 @@ int mnt_table_set_parser_fltrcb(struct libmnt_table *tb, - int (*cb)(struct libmnt_fs *, void *), - void *data) - { -+ assert(tb); - if (!tb) - return -EINVAL; - -@@ -862,7 +863,6 @@ int mnt_table_parse_fstab(struct libmnt_table *tb, const char *filename) - int rc = 0; - - assert(tb); -- - if (!tb) - return -EINVAL; - if (!filename) -@@ -959,6 +959,8 @@ int mnt_table_parse_mtab(struct libmnt_table *tb, const char *filename) - const char *utab = NULL; - struct libmnt_table *u_tb; - -+ assert(tb); -+ - if (mnt_has_regular_mtab(&filename, NULL)) { - - DBG(TAB, mnt_debug_h(tb, "force %s usage", filename)); -diff --git a/libmount/src/tab_update.c b/libmount/src/tab_update.c -index 044a13f..1e7f32b 100644 ---- a/libmount/src/tab_update.c -+++ b/libmount/src/tab_update.c -@@ -131,6 +131,7 @@ int mnt_update_set_filename(struct libmnt_update *upd, const char *filename, - */ - const char *mnt_update_get_filename(struct libmnt_update *upd) - { -+ assert(upd); - return upd ? upd->filename : NULL; - } - -@@ -143,6 +144,7 @@ const char *mnt_update_get_filename(struct libmnt_update *upd) - */ - int mnt_update_is_ready(struct libmnt_update *upd) - { -+ assert(upd); - return upd ? upd->ready : FALSE; - } - -@@ -227,6 +229,7 @@ int mnt_update_set_fs(struct libmnt_update *upd, unsigned long mountflags, - */ - struct libmnt_fs *mnt_update_get_fs(struct libmnt_update *upd) - { -+ assert(upd); - return upd ? upd->fs : NULL; - } - -@@ -238,6 +241,7 @@ struct libmnt_fs *mnt_update_get_fs(struct libmnt_update *upd) - */ - unsigned long mnt_update_get_mflags(struct libmnt_update *upd) - { -+ assert(upd); - return upd ? upd->mountflags : 0; - } - -@@ -252,6 +256,7 @@ int mnt_update_force_rdonly(struct libmnt_update *upd, int rdonly) - { - int rc = 0; - -+ assert(upd); - if (!upd || !upd->fs) - return -EINVAL; - -@@ -505,6 +510,7 @@ static int update_table(struct libmnt_update *upd, struct libmnt_table *tb) - int rc, fd; - char *uq = NULL; - -+ assert(upd); - if (!tb || !upd->filename) - return -EINVAL; - -@@ -566,8 +572,11 @@ leave: - - static int add_file_entry(struct libmnt_table *tb, struct libmnt_update *upd) - { -- struct libmnt_fs *fs = mnt_copy_fs(NULL, upd->fs); -+ struct libmnt_fs *fs; -+ -+ assert(upd); - -+ fs = mnt_copy_fs(NULL, upd->fs); - if (!fs) - return -ENOMEM; - -@@ -638,6 +647,7 @@ static int update_modify_target(struct libmnt_update *upd, struct libmnt_lock *l - struct libmnt_table *tb = NULL; - int rc = 0; - -+ assert(upd); - DBG(UPDATE, mnt_debug_h(upd, "%s: modify target", upd->filename)); - - if (lc) -@@ -726,7 +736,6 @@ int mnt_update_table(struct libmnt_update *upd, struct libmnt_lock *lc) - int rc = -EINVAL; - - assert(upd); -- - if (!upd || !upd->filename) - return -EINVAL; - if (!upd->ready) -diff --git a/libmount/src/utils.c b/libmount/src/utils.c -index c910035..c328414 100644 ---- a/libmount/src/utils.c -+++ b/libmount/src/utils.c -@@ -269,6 +269,8 @@ int mnt_fstype_is_pseudofs(const char *type) - "tmpfs" - }; - -+ assert(type); -+ - return !(bsearch(&type, pseudofs, ARRAY_SIZE(pseudofs), - sizeof(char*), fstype_cmp) == NULL); - } -@@ -281,6 +283,8 @@ int mnt_fstype_is_pseudofs(const char *type) - */ - int mnt_fstype_is_netfs(const char *type) - { -+ assert(type); -+ - if (strcmp(type, "cifs") == 0 || - strcmp(type, "smbfs") == 0 || - strncmp(type,"nfs", 3) == 0 || -@@ -859,10 +863,13 @@ int mnt_open_uniq_filename(const char *filename, char **name) - */ - char *mnt_get_mountpoint(const char *path) - { -- char *mnt = strdup(path); -+ char *mnt; - struct stat st; - dev_t dir, base; - -+ assert(path); -+ -+ mnt = strdup(path); - if (!mnt) - return NULL; - if (*mnt == '/' && *(mnt + 1) == '\0') -diff --git a/libmount/src/version.c b/libmount/src/version.c -index 00e4f99..00b7c03 100644 ---- a/libmount/src/version.c -+++ b/libmount/src/version.c -@@ -25,6 +25,9 @@ static const char *lib_features[] = { - #ifdef CONFIG_LIBMOUNT_DEBUG - "debug", - #endif -+#ifdef CONFIG_LIBMOUNT_ASSERT -+ "assert", -+#endif - NULL - }; - -@@ -39,6 +42,8 @@ int mnt_parse_version_string(const char *ver_string) - const char *cp; - int version = 0; - -+ assert(ver_string); -+ - for (cp = ver_string; *cp; cp++) { - if (*cp == '.') - continue; --- -1.8.1.4 - diff --git a/sources b/sources index 09b9945..8f64420 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -abf3d68b534237b9c336dd5bfbf058d9 util-linux-2.23-rc2.tar.xz +cf5e9bb402371beaaffc3a5f276d5783 util-linux-2.23.tar.xz diff --git a/util-linux.spec b/util-linux.spec index cafc0bc..4472484 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -2,12 +2,12 @@ Summary: A collection of basic system utilities Name: util-linux Version: 2.23 -Release: 0.7%{?dist} +Release: 1%{?dist} License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain Group: System Environment/Base URL: http://en.wikipedia.org/wiki/Util-linux -%define upstream_version %{version}-rc2 +%define upstream_version %{version} ### Macros %define cytune_archs %{ix86} alpha %{arm} @@ -77,10 +77,6 @@ Requires: libmount = %{version}-%{release} # 151635 - makeing /var/log/lastlog Patch3: util-linux-ng-2.22-login-lastlog.patch -### upstream pathes (2.23) -# 948274 - interruption code 0x4003B in libmount.so.1.1.0 -Patch100: 0001-libmount-fix-mount.nfs-segfault-rely-on-assert-rathe.patch - %description The util-linux package contains a large variety of low-level system utilities that are necessary for a Linux system to function. Among @@ -234,6 +230,14 @@ make %{?_smp_mflags} # build nologin gcc $CFLAGS -o nologin nologin.c + +%check +#to run tests use "--with check" +%if %{?_with_check:1}%{!?_with_check:0} +make check +%endif + + %install rm -rf ${RPM_BUILD_ROOT} mkdir -p ${RPM_BUILD_ROOT}%{_bindir} @@ -788,6 +792,10 @@ fi %{_libdir}/pkgconfig/uuid.pc %changelog +* Thu Apr 25 2013 Karel Zak 2.23-1 +- upgrade to 2.23 +- add --with check to call make check + * Mon Apr 15 2013 Karel Zak 2.23-0.7 - remove unused patches