diff options
author | Karel Zak | 2012-12-04 14:22:39 +0100 |
---|---|---|
committer | Karel Zak | 2012-12-04 14:22:39 +0100 |
commit | ba2bdf41c436640286df40529cddede46b3ba5d8 (patch) | |
tree | 2fd343c6a2450b4566ca996ff2f0c9703bc2e680 /libmount/src | |
parent | libblkid: re-read PART{UUID,LABEL} for successfully verified cached devices (diff) | |
download | kernel-qcow2-util-linux-ba2bdf41c436640286df40529cddede46b3ba5d8.tar.gz kernel-qcow2-util-linux-ba2bdf41c436640286df40529cddede46b3ba5d8.tar.xz kernel-qcow2-util-linux-ba2bdf41c436640286df40529cddede46b3ba5d8.zip |
libmount: clean nonnull attribute usage
- use __attribute__((nonnull) for functions where we not able to
return an return code ("is", "has" and some "get" functions).
- use __attribute__((nonnull) for small functions where we
always modify any of the function argument (some mnt_optstr_* functions)
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src')
-rw-r--r-- | libmount/src/context.c | 28 | ||||
-rw-r--r-- | libmount/src/context_loopdev.c | 13 | ||||
-rw-r--r-- | libmount/src/fs.c | 2 | ||||
-rw-r--r-- | libmount/src/iter.c | 15 | ||||
-rw-r--r-- | libmount/src/libmount.h.in | 315 | ||||
-rw-r--r-- | libmount/src/lock.c | 3 | ||||
-rw-r--r-- | libmount/src/mountP.h | 101 | ||||
-rw-r--r-- | libmount/src/optstr.c | 6 | ||||
-rw-r--r-- | libmount/src/tab_parse.c | 6 | ||||
-rw-r--r-- | libmount/src/tab_update.c | 2 | ||||
-rw-r--r-- | libmount/src/utils.c | 22 |
11 files changed, 192 insertions, 321 deletions
diff --git a/libmount/src/context.c b/libmount/src/context.c index 21c64726f..3269b0beb 100644 --- a/libmount/src/context.c +++ b/libmount/src/context.c @@ -276,7 +276,7 @@ int mnt_context_set_optsmode(struct libmnt_context *cxt, int mode) int mnt_context_get_optsmode(struct libmnt_context *cxt) { - return cxt ? cxt->optsmode : 0; + return cxt->optsmode; } /** @@ -333,7 +333,7 @@ int mnt_context_enable_lazy(struct libmnt_context *cxt, int enable) */ int mnt_context_is_lazy(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_LAZY) ? 1 : 0; + return cxt->flags & MNT_FL_LAZY ? 1 : 0; } /** @@ -359,7 +359,7 @@ int mnt_context_enable_fork(struct libmnt_context *cxt, int enable) */ int mnt_context_is_fork(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_FORK) ? 1 : 0; + return cxt->flags & MNT_FL_FORK ? 1 : 0; } /** @@ -410,7 +410,7 @@ int mnt_context_enable_rdonly_umount(struct libmnt_context *cxt, int enable) */ int mnt_context_is_rdonly_umount(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_RDONLY_UMOUNT) ? 1 : 0; + return cxt->flags & MNT_FL_RDONLY_UMOUNT ? 1 : 0; } /** @@ -435,7 +435,7 @@ int mnt_context_disable_helpers(struct libmnt_context *cxt, int disable) */ int mnt_context_is_nohelpers(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_NOHELPERS) ? 1 : 0; + return cxt->flags & MNT_FL_NOHELPERS ? 1 : 0; } @@ -461,7 +461,7 @@ int mnt_context_enable_sloppy(struct libmnt_context *cxt, int enable) */ int mnt_context_is_sloppy(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_SLOPPY) ? 1 : 0; + return cxt->flags & MNT_FL_SLOPPY ? 1 : 0; } /** @@ -486,7 +486,7 @@ int mnt_context_enable_fake(struct libmnt_context *cxt, int enable) */ int mnt_context_is_fake(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_FAKE) ? 1 : 0; + return cxt->flags & MNT_FL_FAKE ? 1 : 0; } /** @@ -511,7 +511,7 @@ int mnt_context_disable_mtab(struct libmnt_context *cxt, int disable) */ int mnt_context_is_nomtab(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_NOMTAB) ? 1 : 0; + return cxt->flags & MNT_FL_NOMTAB ? 1 : 0; } /** @@ -537,7 +537,7 @@ int mnt_context_disable_swapmatch(struct libmnt_context *cxt, int disable) */ int mnt_context_is_swapmatch(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_NOSWAPMATCH) ? 0 : 1; + return cxt->flags & MNT_FL_NOSWAPMATCH ? 0 : 1; } /** @@ -562,7 +562,7 @@ int mnt_context_enable_force(struct libmnt_context *cxt, int enable) */ int mnt_context_is_force(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_FORCE) ? 1 : 0; + return cxt->flags & MNT_FL_FORCE ? 1 : 0; } /** @@ -587,7 +587,7 @@ int mnt_context_enable_verbose(struct libmnt_context *cxt, int enable) */ int mnt_context_is_verbose(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_VERBOSE) ? 1 : 0; + return cxt->flags & MNT_FL_VERBOSE ? 1 : 0; } /** @@ -612,7 +612,7 @@ int mnt_context_enable_loopdel(struct libmnt_context *cxt, int enable) */ int mnt_context_is_loopdel(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_LOOPDEL) ? 1 : 0; + return cxt->flags & MNT_FL_LOOPDEL ? 1 : 0; } /** @@ -1825,7 +1825,7 @@ int mnt_context_apply_fstab(struct libmnt_context *cxt) */ int mnt_context_tab_applied(struct libmnt_context *cxt) { - return cxt && (cxt->flags & MNT_FL_TAB_APPLIED); + return cxt->flags & MNT_FL_TAB_APPLIED; } /** @@ -1842,7 +1842,7 @@ int mnt_context_tab_applied(struct libmnt_context *cxt) */ int mnt_context_get_status(struct libmnt_context *cxt) { - return cxt && (!cxt->syscall_status || !cxt->helper_exec_status); + return !cxt->syscall_status || !cxt->helper_exec_status; } /** diff --git a/libmount/src/context_loopdev.c b/libmount/src/context_loopdev.c index fc8da9fe7..369f81dc0 100644 --- a/libmount/src/context_loopdev.c +++ b/libmount/src/context_loopdev.c @@ -75,7 +75,8 @@ int mnt_context_is_loopdev(struct libmnt_context *cxt) /* Check, if there already exists a mounted loop device on the mountpoint node * with the same parameters. */ -static int is_mounted_same_loopfile(struct libmnt_context *cxt, +static int __attribute__((nonnull)) +is_mounted_same_loopfile(struct libmnt_context *cxt, const char *target, const char *backing_file, uint64_t offset) @@ -142,10 +143,12 @@ int mnt_context_setup_loopdev(struct libmnt_context *cxt) int rc = 0, lo_flags = 0; uint64_t offset = 0, sizelimit = 0; - assert(cxt); assert(cxt->fs); assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED)); + if (!cxt) + return -EINVAL; + backing_file = mnt_fs_get_srcpath(cxt->fs); if (!backing_file) return -EINVAL; @@ -315,6 +318,9 @@ int mnt_context_delete_loopdev(struct libmnt_context *cxt) assert(cxt); assert(cxt->fs); + if (!cxt) + return -EINVAL; + src = mnt_fs_get_srcpath(cxt->fs); if (!src) return -EINVAL; @@ -338,6 +344,9 @@ int mnt_context_clear_loopdev(struct libmnt_context *cxt) { assert(cxt); + if (!cxt) + return -EINVAL; + if (mnt_context_get_status(cxt) == 0 && (cxt->flags & MNT_FL_LOOPDEV_READY)) { /* diff --git a/libmount/src/fs.c b/libmount/src/fs.c index 6e0c4e645..d94476870 100644 --- a/libmount/src/fs.c +++ b/libmount/src/fs.c @@ -1184,6 +1184,8 @@ int mnt_fs_get_option(struct libmnt_fs *fs, const char *name, { char rc = 1; + if (!fs) + return -EINVAL; if (fs->fs_optstr) rc = mnt_optstr_get_option(fs->fs_optstr, name, value, valsz); if (rc == 1 && fs->vfs_optstr) diff --git a/libmount/src/iter.c b/libmount/src/iter.c index 393c23eb2..d7b8adbef 100644 --- a/libmount/src/iter.c +++ b/libmount/src/iter.c @@ -54,25 +54,20 @@ void mnt_free_iter(struct libmnt_iter *itr) */ void mnt_reset_iter(struct libmnt_iter *itr, int direction) { - assert(itr); - - if (direction == -1 && itr) + if (direction == -1) direction = itr->direction; - if (itr) { - memset(itr, 0, sizeof(*itr)); - itr->direction = direction; - } + memset(itr, 0, sizeof(*itr)); + itr->direction = direction; } /** * mnt_iter_get_direction: * @itr: iterator pointer * - * Returns: MNT_INTER_{FOR,BACK}WARD or negative number in case of error. + * Returns: MNT_INTER_{FOR,BACK}WARD */ int mnt_iter_get_direction(struct libmnt_iter *itr) { - assert(itr); - return itr ? itr->direction : -EINVAL; + return itr->direction; } diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in index f91f6eb8a..06b1595a5 100644 --- a/libmount/src/libmount.h.in +++ b/libmount/src/libmount.h.in @@ -154,22 +154,21 @@ extern int mnt_parse_version_string(const char *ver_string) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_get_library_version(const char **ver_string); -extern int mnt_get_library_features(const char ***features) - __ul_attribute__((nonnull)); +extern int mnt_get_library_features(const char ***features); /* utils.c */ extern char *mnt_mangle(const char *str) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern char *mnt_unmangle(const char *str) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); + extern int mnt_fstype_is_netfs(const char *type) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_fstype_is_pseudofs(const char *type) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); + extern int mnt_match_fstype(const char *type, const char *pattern) __ul_attribute__((warn_unused_result)); extern int mnt_match_options(const char *optstr, const char *pattern) @@ -190,8 +189,8 @@ extern struct libmnt_cache *mnt_new_cache(void) __ul_attribute__((warn_unused_result)); extern void mnt_free_cache(struct libmnt_cache *cache); -extern int mnt_cache_read_tags(struct libmnt_cache *cache, const char *devname) - __ul_attribute__((nonnull)); +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, @@ -200,26 +199,19 @@ extern int mnt_cache_device_has_tag(struct libmnt_cache *cache, extern char *mnt_cache_find_tag_value(struct libmnt_cache *cache, const char *devname, const char *token) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern char *mnt_get_fstype(const char *devname, int *ambi, struct libmnt_cache *cache) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); extern char *mnt_resolve_path(const char *path, struct libmnt_cache *cache) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); extern char *mnt_resolve_tag(const char *token, const char *value, struct libmnt_cache *cache) - __ul_attribute__((nonnull(1, 2))) __ul_attribute__((warn_unused_result)); extern char *mnt_resolve_spec(const char *spec, struct libmnt_cache *cache) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); - extern char *mnt_pretty_path(const char *path, struct libmnt_cache *cache) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); /* optstr.c */ @@ -232,9 +224,9 @@ extern int mnt_optstr_append_option(char **optstr, const char *name, extern int mnt_optstr_prepend_option(char **optstr, const char *name, const char *value) __ul_attribute__((nonnull(1, 2))); + extern int mnt_optstr_get_option(const char *optstr, const char *name, - char **value, size_t *valsz) - __ul_attribute__((nonnull(1, 2))); + char **value, size_t *valsz); extern int mnt_optstr_set_option(char **optstr, const char *name, const char *value) __ul_attribute__((nonnull(1, 2))); @@ -245,20 +237,16 @@ 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, - int ignore_user, int ignore_vfs) - __ul_attribute__((nonnull(1))); + int ignore_user, int ignore_vfs); extern int mnt_optstr_get_options(const char *optstr, char **subset, - const struct libmnt_optmap *map, int ignore) - __ul_attribute__((nonnull)); + const struct libmnt_optmap *map, int ignore); extern int mnt_optstr_get_flags(const char *optstr, unsigned long *flags, - const struct libmnt_optmap *map) - __ul_attribute__((nonnull)); -extern int mnt_optstr_apply_flags(char **optstr, unsigned long flags, - const struct libmnt_optmap *map) - __ul_attribute__((nonnull)); + const struct libmnt_optmap *map); +extern int mnt_optstr_apply_flags(char **optstr, unsigned long flags, + const struct libmnt_optmap *map); /* iter.c */ enum { @@ -292,10 +280,8 @@ extern void mnt_free_lock(struct libmnt_lock *ml); extern void mnt_unlock_file(struct libmnt_lock *ml) __ul_attribute__((nonnull)); -extern int mnt_lock_file(struct libmnt_lock *ml) - __ul_attribute__((nonnull)); -extern int mnt_lock_block_signals(struct libmnt_lock *ml, int enable) - __ul_attribute__((nonnull)); +extern int mnt_lock_file(struct libmnt_lock *ml); +extern int mnt_lock_block_signals(struct libmnt_lock *ml, int enable); /* fs.c */ extern struct libmnt_fs *mnt_new_fs(void) @@ -311,15 +297,12 @@ extern struct libmnt_fs *mnt_copy_fs(struct libmnt_fs *dest, extern void *mnt_fs_get_userdata(struct libmnt_fs *fs) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_userdata(struct libmnt_fs *fs, void *data) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_source(struct libmnt_fs *fs, const char *source) - __ul_attribute__((nonnull(1))); +extern int mnt_fs_set_source(struct libmnt_fs *fs, const char *source); extern const char *mnt_fs_get_srcpath(struct libmnt_fs *fs) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_fs_get_tag(struct libmnt_fs *fs, const char **name, const char **value) @@ -327,19 +310,15 @@ extern int mnt_fs_get_tag(struct libmnt_fs *fs, const char **name, extern const char *mnt_fs_get_target(struct libmnt_fs *fs) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_target(struct libmnt_fs *fs, const char *target) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_fstype(struct libmnt_fs *fs, const char *fstype) - __ul_attribute__((nonnull(1))); +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) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); extern int mnt_fs_streq_target(struct libmnt_fs *fs, const char *path) - __ul_attribute__((nonnull(1))) __ul_attribute__((warn_unused_result)); extern char *mnt_fs_strdup_options(struct libmnt_fs *fs) @@ -348,17 +327,12 @@ extern char *mnt_fs_strdup_options(struct libmnt_fs *fs) extern const char *mnt_fs_get_options(struct libmnt_fs *fs) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_options(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull(1))); -extern int mnt_fs_append_options(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull)); -extern int mnt_fs_prepend_options(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull)); +extern int mnt_fs_set_options(struct libmnt_fs *fs, const char *optstr); +extern int mnt_fs_append_options(struct libmnt_fs *fs, const char *optstr); +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) - __ul_attribute__((nonnull(1,2))); - + char **value, size_t *valsz); extern const char *mnt_fs_get_fs_options(struct libmnt_fs *fs) __ul_attribute__((nonnull)) @@ -373,36 +347,28 @@ 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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_attributes(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull(1))); +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) - __ul_attribute__((nonnull(1,2))); -extern int mnt_fs_append_attributes(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull)); -extern int mnt_fs_prepend_attributes(struct libmnt_fs *fs, const char *optstr) - __ul_attribute__((nonnull)); + 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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_freq(struct libmnt_fs *fs, int freq) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_passno(struct libmnt_fs *fs, int passno) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_root(struct libmnt_fs *fs, const char *root) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_fs_set_bindsrc(struct libmnt_fs *fs, const char *src) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); @@ -460,8 +426,7 @@ extern int mnt_fs_is_pseudofs(struct libmnt_fs *fs) __ul_attribute__((warn_unused_result)); extern void mnt_free_mntent(struct mntent *mnt); -extern int mnt_fs_to_mntent(struct libmnt_fs *fs, struct mntent **mnt) - __ul_attribute__((nonnull)); +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) @@ -471,53 +436,38 @@ extern struct libmnt_table *mnt_new_table_from_dir(const char *dirname) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, - const char *filename) - __ul_attribute__((nonnull(1,2))); -extern int mnt_table_parse_file(struct libmnt_table *tb, const char *filename) - __ul_attribute__((nonnull)); -extern int mnt_table_parse_dir(struct libmnt_table *tb, const char *dirname) - __ul_attribute__((nonnull)); + const char *filename); +extern int mnt_table_parse_file(struct libmnt_table *tb, const char *filename); +extern int mnt_table_parse_dir(struct libmnt_table *tb, const char *dirname); -extern int mnt_table_parse_fstab(struct libmnt_table *tb, const char *filename) - __ul_attribute__((nonnull(1))); -extern int mnt_table_parse_swaps(struct libmnt_table *tb, const char *filename) - __ul_attribute__((nonnull(1))); -extern int mnt_table_parse_mtab(struct libmnt_table *tb, const char *filename) - __ul_attribute__((nonnull(1))); +extern int mnt_table_parse_fstab(struct libmnt_table *tb, const char *filename); +extern int mnt_table_parse_swaps(struct libmnt_table *tb, const char *filename); +extern int mnt_table_parse_mtab(struct libmnt_table *tb, const char *filename); extern int mnt_table_set_parser_errcb(struct libmnt_table *tb, - int (*cb)(struct libmnt_table *tb, const char *filename, int line)) - __ul_attribute__((nonnull(1))); + int (*cb)(struct libmnt_table *tb, const char *filename, int line)); /* tab.c */ extern struct libmnt_table *mnt_new_table(void) __ul_attribute__((warn_unused_result)); extern void mnt_free_table(struct libmnt_table *tb); -extern int mnt_reset_table(struct libmnt_table *tb) - __ul_attribute__((nonnull)); +extern int mnt_reset_table(struct libmnt_table *tb); extern int mnt_table_get_nents(struct libmnt_table *tb) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_table_set_cache(struct libmnt_table *tb, struct libmnt_cache *mpc) - __ul_attribute__((nonnull(1))); +extern int mnt_table_set_cache(struct libmnt_table *tb, struct libmnt_cache *mpc); extern struct libmnt_cache *mnt_table_get_cache(struct libmnt_table *tb) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_table_add_fs(struct libmnt_table *tb, struct libmnt_fs *fs) - __ul_attribute__((nonnull)); -extern int mnt_table_remove_fs(struct libmnt_table *tb, struct libmnt_fs *fs) - __ul_attribute__((nonnull)); +extern int mnt_table_add_fs(struct libmnt_table *tb, struct libmnt_fs *fs); +extern int mnt_table_remove_fs(struct libmnt_table *tb, struct libmnt_fs *fs); extern int mnt_table_next_fs(struct libmnt_table *tb, struct libmnt_iter *itr, - struct libmnt_fs **fs) - __ul_attribute__((nonnull)); + struct libmnt_fs **fs); extern int mnt_table_next_child_fs(struct libmnt_table *tb, struct libmnt_iter *itr, - struct libmnt_fs *parent, struct libmnt_fs **chld) - __ul_attribute__((nonnull)); -extern int mnt_table_get_root_fs(struct libmnt_table *tb, struct libmnt_fs **root) - __ul_attribute__((nonnull)); + struct libmnt_fs *parent, struct libmnt_fs **chld); +extern int mnt_table_get_root_fs(struct libmnt_table *tb, struct libmnt_fs **root); extern int mnt_table_set_iter(struct libmnt_table *tb, struct libmnt_iter *itr, - struct libmnt_fs *fs) - __ul_attribute__((nonnull)); + struct libmnt_fs *fs); extern struct libmnt_fs *mnt_table_find_target(struct libmnt_table *tb, const char *path, int direction) @@ -549,8 +499,7 @@ extern int mnt_table_find_next_fs(struct libmnt_table *tb, struct libmnt_iter *itr, int (*match_func)(struct libmnt_fs *, void *), void *userdata, - struct libmnt_fs **fs) - __ul_attribute__((nonnull(1,2,3,5))); + struct libmnt_fs **fs); extern int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs) __ul_attribute__((nonnull)); @@ -565,15 +514,12 @@ extern int mnt_update_is_ready(struct libmnt_update *upd) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_update_set_fs(struct libmnt_update *upd, unsigned long mountflags, - const char *target, struct libmnt_fs *fs) - __ul_attribute__((nonnull(1))); -extern int mnt_update_table(struct libmnt_update *upd, struct libmnt_lock *lc) - __ul_attribute__((nonnull(1))); + 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)) __ul_attribute__((warn_unused_result)); -extern int mnt_update_force_rdonly(struct libmnt_update *upd, int rdonly) - __ul_attribute__((nonnull)); +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)) __ul_attribute__((warn_unused_result)); @@ -596,15 +542,13 @@ extern void mnt_free_tabdiff(struct libmnt_tabdiff *df); extern int mnt_diff_tables(struct libmnt_tabdiff *df, struct libmnt_table *old_tab, - struct libmnt_table *new_tab) - __ul_attribute__((nonnull)); + struct libmnt_table *new_tab); extern int mnt_tabdiff_next_change(struct libmnt_tabdiff *df, struct libmnt_iter *itr, struct libmnt_fs **old_fs, struct libmnt_fs **new_fs, - int *oper) - __ul_attribute__((nonnull(1, 2))); + int *oper); /* context.c */ @@ -633,44 +577,28 @@ extern struct libmnt_context *mnt_new_context(void) __ul_attribute__((warn_unused_result)); extern void mnt_free_context(struct libmnt_context *cxt); -extern int mnt_reset_context(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); +extern int mnt_reset_context(struct libmnt_context *cxt); extern int mnt_context_is_restricted(struct libmnt_context *cxt) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_context_init_helper(struct libmnt_context *cxt, - int action, int flags) - __ul_attribute__((nonnull)); -extern int mnt_context_helper_setopt(struct libmnt_context *cxt, int c, char *arg) - __ul_attribute__((nonnull)); - -extern int mnt_context_set_optsmode(struct libmnt_context *cxt, int mode) - __ul_attribute__((nonnull)); -extern int mnt_context_disable_canonicalize(struct libmnt_context *cxt, int disable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_lazy(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_rdonly_umount(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_disable_helpers(struct libmnt_context *cxt, int disable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_sloppy(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_fake(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_disable_mtab(struct libmnt_context *cxt, int disable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_force(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_verbose(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_loopdel(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_enable_fork(struct libmnt_context *cxt, int enable) - __ul_attribute__((nonnull)); -extern int mnt_context_disable_swapmatch(struct libmnt_context *cxt, int disable) - __ul_attribute__((nonnull)); + int action, int flags); +extern int mnt_context_helper_setopt(struct libmnt_context *cxt, int c, char *arg); + +extern int mnt_context_set_optsmode(struct libmnt_context *cxt, int mode); +extern int mnt_context_disable_canonicalize(struct libmnt_context *cxt, int disable); +extern int mnt_context_enable_lazy(struct libmnt_context *cxt, int enable); +extern int mnt_context_enable_rdonly_umount(struct libmnt_context *cxt, int enable); +extern int mnt_context_disable_helpers(struct libmnt_context *cxt, int disable); +extern int mnt_context_enable_sloppy(struct libmnt_context *cxt, int enable); +extern int mnt_context_enable_fake(struct libmnt_context *cxt, int enable); +extern int mnt_context_disable_mtab(struct libmnt_context *cxt, int disable); +extern int mnt_context_enable_force(struct libmnt_context *cxt, int enable); +extern int mnt_context_enable_verbose(struct libmnt_context *cxt, int enable); +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)) @@ -720,24 +648,21 @@ extern int mnt_context_is_child(struct libmnt_context *cxt) __ul_attribute__((warn_unused_result)); extern int mnt_context_wait_for_children(struct libmnt_context *cxt, - int *nchildren, int *nerrs) - __ul_attribute__((nonnull(1))); + int *nchildren, int *nerrs); extern int mnt_context_is_fs_mounted(struct libmnt_context *cxt, struct libmnt_fs *fs, int *mounted) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_set_fs(struct libmnt_context *cxt, struct libmnt_fs *fs) - __ul_attribute__((nonnull(1))); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_set_source(struct libmnt_context *cxt, const char *source) - __ul_attribute__((nonnull(1))); -extern int mnt_context_set_target(struct libmnt_context *cxt, const char *target) - __ul_attribute__((nonnull(1))); -extern int mnt_context_set_fstype(struct libmnt_context *cxt, const char *fstype) - __ul_attribute__((nonnull(1))); + +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)) __ul_attribute__((warn_unused_result)); @@ -748,48 +673,36 @@ extern const char *mnt_context_get_fstype(struct libmnt_context *cxt) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_set_options(struct libmnt_context *cxt, const char *optstr) - __ul_attribute__((nonnull(1))); -extern int mnt_context_append_options(struct libmnt_context *cxt, - const char *optstr) - __ul_attribute__((nonnull)); +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_set_fstype_pattern(struct libmnt_context *cxt, - const char *pattern) - __ul_attribute__((nonnull(1))); -extern int mnt_context_set_options_pattern(struct libmnt_context *cxt, - const char *pattern) - __ul_attribute__((nonnull(1))); +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); extern int mnt_context_set_passwd_cb(struct libmnt_context *cxt, char *(*get)(struct libmnt_context *), void (*release)(struct libmnt_context *, char *)) - __ul_attribute__((nonnull(1))) __ul_attribute__((deprecated)); extern int mnt_context_set_tables_errcb(struct libmnt_context *cxt, - int (*cb)(struct libmnt_table *tb, const char *filename, int line)) - __ul_attribute__((nonnull(1))); + int (*cb)(struct libmnt_table *tb, const char *filename, int line)); extern int mnt_context_set_fstab(struct libmnt_context *cxt, - struct libmnt_table *tb) - __ul_attribute__((nonnull(1))); + struct libmnt_table *tb); extern int mnt_context_get_fstab(struct libmnt_context *cxt, struct libmnt_table **tb) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); + extern int mnt_context_get_mtab(struct libmnt_context *cxt, - struct libmnt_table **tb) - __ul_attribute__((nonnull)); + struct libmnt_table **tb); extern int mnt_context_get_table(struct libmnt_context *cxt, const char *filename, - struct libmnt_table **tb) - __ul_attribute__((nonnull)); + struct libmnt_table **tb); extern int mnt_context_set_cache(struct libmnt_context *cxt, - struct libmnt_cache *cache) - __ul_attribute__((nonnull(1))); + struct libmnt_cache *cache); extern struct libmnt_cache *mnt_context_get_cache(struct libmnt_context *cxt) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); @@ -797,25 +710,18 @@ extern struct libmnt_lock *mnt_context_get_lock(struct libmnt_context *cxt) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); extern int mnt_context_set_mflags(struct libmnt_context *cxt, - unsigned long flags) - __ul_attribute__((nonnull)); + unsigned long flags); extern int mnt_context_get_mflags(struct libmnt_context *cxt, - unsigned long *flags) - __ul_attribute__((nonnull)); + unsigned long *flags); extern int mnt_context_set_user_mflags(struct libmnt_context *cxt, - unsigned long flags) - __ul_attribute__((nonnull)); + unsigned long flags); extern int mnt_context_get_user_mflags(struct libmnt_context *cxt, - unsigned long *flags) - __ul_attribute__((nonnull)); + unsigned long *flags); -extern int mnt_context_set_mountdata(struct libmnt_context *cxt, void *data) - __ul_attribute__((nonnull(1))); -extern int mnt_context_apply_fstab(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); +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) - __ul_attribute__((nonnull)); +extern int mnt_context_reset_status(struct libmnt_context *cxt); extern int mnt_context_get_status(struct libmnt_context *cxt) __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); @@ -836,49 +742,36 @@ extern int mnt_context_get_syscall_errno(struct libmnt_context *cxt) __ul_attribute__((warn_unused_result)); extern int mnt_context_strerror(struct libmnt_context *cxt, char *buf, - size_t bufsiz) - __ul_attribute__((nonnull)); + size_t bufsiz); /* context_mount.c */ -extern int mnt_context_mount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); -extern int mnt_context_umount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); +extern int mnt_context_mount(struct libmnt_context *cxt); +extern int mnt_context_umount(struct libmnt_context *cxt); extern int mnt_context_next_mount(struct libmnt_context *cxt, struct libmnt_iter *itr, struct libmnt_fs **fs, - int *mntrc, int *ignored) - __ul_attribute__((nonnull(1, 2, 3))); + int *mntrc, int *ignored); extern int mnt_context_prepare_mount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_do_mount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); -extern int mnt_context_finalize_mount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); +extern int mnt_context_do_mount(struct libmnt_context *cxt); +extern int mnt_context_finalize_mount(struct libmnt_context *cxt); /* context_umount.c */ extern int mnt_context_next_umount(struct libmnt_context *cxt, struct libmnt_iter *itr, struct libmnt_fs **fs, - int *mntrc, int *ignored) - __ul_attribute__((nonnull(1, 2, 3))); + int *mntrc, int *ignored); extern int mnt_context_prepare_umount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_do_umount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); -extern int mnt_context_finalize_umount(struct libmnt_context *cxt) - __ul_attribute__((nonnull)); - +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)) __ul_attribute__((warn_unused_result)); -extern int mnt_context_set_syscall_status(struct libmnt_context *cxt, int status) - __ul_attribute__((nonnull)); +extern int mnt_context_set_syscall_status(struct libmnt_context *cxt, int status); /* * mount(8) userspace options masks (MNT_MAP_USERSPACE map) diff --git a/libmount/src/lock.c b/libmount/src/lock.c index b149b6f8b..e5393d0a4 100644 --- a/libmount/src/lock.c +++ b/libmount/src/lock.c @@ -53,9 +53,6 @@ struct libmnt_lock *mnt_new_lock(const char *datafile, pid_t id) char *lo = NULL, *ln = NULL; size_t losz; - if (!datafile) - return NULL; - /* 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 be583469e..dca70accb 100644 --- a/libmount/src/mountP.h +++ b/libmount/src/mountP.h @@ -123,8 +123,7 @@ struct libmnt_test { }; /* test.c */ -extern int mnt_run_test(struct libmnt_test *tests, int argc, char *argv[]) - __attribute__((nonnull)); +extern int mnt_run_test(struct libmnt_test *tests, int argc, char *argv[]); #endif /* utils.c */ @@ -134,45 +133,36 @@ extern int startswith(const char *s, const char *sx) __attribute__((nonnull)); extern int mnt_is_readonly(const char *path) __attribute__((nonnull)); -extern int mnt_parse_offset(const char *str, size_t len, uintmax_t *res) - __attribute__((nonnull(1,3))); -extern int mnt_chdir_to_parent(const char *target, char **filename) - __attribute__((nonnull)); +extern int mnt_parse_offset(const char *str, size_t len, uintmax_t *res); + +extern int mnt_chdir_to_parent(const char *target, char **filename); extern char *mnt_get_username(const uid_t uid); -extern int mnt_get_uid(const char *username, uid_t *uid) - __attribute__((nonnull)); -extern int mnt_get_gid(const char *groupname, gid_t *gid) - __attribute__((nonnull)); +extern int mnt_get_uid(const char *username, uid_t *uid); +extern int mnt_get_gid(const char *groupname, gid_t *gid); extern int mnt_in_group(gid_t gid); -extern char *mnt_get_fs_root(const char *path, const char *mountpoint) - __attribute__((nonnull(1))); -extern int mnt_open_uniq_filename(const char *filename, char **name) - __attribute__((nonnull(1))); +extern char *mnt_get_fs_root(const char *path, const char *mountpoint); +extern int mnt_open_uniq_filename(const char *filename, char **name); extern int mnt_has_regular_utab(const char **utab, int *writable); extern const char *mnt_get_utab_path(void); -extern int mnt_get_filesystems(char ***filesystems, const char *pattern) - __attribute__((nonnull(1))); +extern int mnt_get_filesystems(char ***filesystems, const char *pattern); extern void mnt_free_filesystems(char **filesystems); -extern char *mnt_get_kernel_cmdline_option(const char *name) - __attribute__((nonnull)); +extern char *mnt_get_kernel_cmdline_option(const char *name); /* tab.c */ extern int mnt_table_set_parser_fltrcb( struct libmnt_table *tb, int (*cb)(struct libmnt_fs *, void *), - void *data) - __attribute__((nonnull(1))); + void *data); extern struct libmnt_fs *mnt_table_get_fs_root(struct libmnt_table *tb, struct libmnt_fs *fs, unsigned long mountflags, - char **fsroot) - __attribute__((nonnull(2, 4))); + char **fsroot); /* * Generic iterator */ @@ -275,8 +265,7 @@ struct libmnt_table { struct list_head ents; /* list of entries (libmnt_fs) */ }; -extern struct libmnt_table *__mnt_new_table_from_file(const char *filename, int fmt) - __attribute__((nonnull(1))); +extern struct libmnt_table *__mnt_new_table_from_file(const char *filename, int fmt); /* * Tab file format @@ -382,8 +371,7 @@ struct libmnt_context #define MNT_FL_DEFAULT 0 /* lock.c */ -extern int mnt_lock_use_simplelock(struct libmnt_lock *ml, int enable) - __attribute__((nonnull(1))); +extern int mnt_lock_use_simplelock(struct libmnt_lock *ml, int enable); /* optmap.c */ extern const struct libmnt_optmap *mnt_optmap_get_entry( @@ -391,20 +379,14 @@ extern const struct libmnt_optmap *mnt_optmap_get_entry( int nmaps, const char *name, size_t namelen, - const struct libmnt_optmap **mapent) - __attribute__((nonnull(1, 3))); + const struct libmnt_optmap **mapent); /* optstr.c */ -extern int mnt_optstr_remove_option_at(char **optstr, char *begin, char *end) - __attribute__((nonnull)); -extern int mnt_optstr_fix_gid(char **optstr, char *value, size_t valsz, char **next) - __attribute__((nonnull)); -extern int mnt_optstr_fix_uid(char **optstr, char *value, size_t valsz, char **next) - __attribute__((nonnull)); -extern int mnt_optstr_fix_secontext(char **optstr, char *value, size_t valsz, char **next) - __attribute__((nonnull)); -extern int mnt_optstr_fix_user(char **optstr) - __attribute__((nonnull)); +extern int mnt_optstr_remove_option_at(char **optstr, char *begin, char *end); +extern int mnt_optstr_fix_gid(char **optstr, char *value, size_t valsz, char **next); +extern int mnt_optstr_fix_uid(char **optstr, char *value, size_t valsz, char **next); +extern int mnt_optstr_fix_secontext(char **optstr, char *value, size_t valsz, char **next); +extern int mnt_optstr_fix_user(char **optstr); /* fs.c */ extern struct libmnt_fs *mnt_copy_mtab_fs(const struct libmnt_fs *fs) @@ -415,46 +397,33 @@ extern int __mnt_fs_set_fstype_ptr(struct libmnt_fs *fs, char *fstype) __attribute__((nonnull(1))); /* context.c */ -extern int mnt_context_prepare_srcpath(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_prepare_target(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_guess_fstype(struct libmnt_context *cxt) - __attribute__((nonnull)); +extern int mnt_context_prepare_srcpath(struct libmnt_context *cxt); +extern int mnt_context_prepare_target(struct libmnt_context *cxt); +extern int mnt_context_guess_fstype(struct libmnt_context *cxt); extern int mnt_context_prepare_helper(struct libmnt_context *cxt, - const char *name, const char *type) - __attribute__((nonnull(1,2))); -extern int mnt_context_prepare_update(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_merge_mflags(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_update_tabs(struct libmnt_context *cxt) - __attribute__((nonnull)); + const char *name, const char *type); +extern int mnt_context_prepare_update(struct libmnt_context *cxt); +extern int mnt_context_merge_mflags(struct libmnt_context *cxt); +extern int mnt_context_update_tabs(struct libmnt_context *cxt); -extern int mnt_context_umount_setopt(struct libmnt_context *cxt, int c, char *arg) - __attribute__((nonnull(1))); -extern int mnt_context_mount_setopt(struct libmnt_context *cxt, int c, char *arg) - __attribute__((nonnull(1))); +extern int mnt_context_umount_setopt(struct libmnt_context *cxt, int c, char *arg); +extern int mnt_context_mount_setopt(struct libmnt_context *cxt, int c, char *arg); extern int mnt_context_is_loopdev(struct libmnt_context *cxt) __attribute__((nonnull)); -extern int mnt_context_setup_loopdev(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_delete_loopdev(struct libmnt_context *cxt) - __attribute__((nonnull)); -extern int mnt_context_clear_loopdev(struct libmnt_context *cxt) - __attribute__((nonnull)); + +extern int mnt_context_setup_loopdev(struct libmnt_context *cxt); +extern int mnt_context_delete_loopdev(struct libmnt_context *cxt); +extern int mnt_context_clear_loopdev(struct libmnt_context *cxt); extern int mnt_fork_context(struct libmnt_context *cxt); extern int mnt_context_set_tabfilter(struct libmnt_context *cxt, int (*fltr)(struct libmnt_fs *, void *), - void *data) - __attribute__((nonnull(1))); + void *data); /* tab_update.c */ extern int mnt_update_set_filename(struct libmnt_update *upd, - const char *filename, int userspace_only) - __attribute__((nonnull(1))); + const char *filename, int userspace_only); #endif /* _LIBMOUNT_PRIVATE_H */ diff --git a/libmount/src/optstr.c b/libmount/src/optstr.c index 16d6d13a2..d0072447b 100644 --- a/libmount/src/optstr.c +++ b/libmount/src/optstr.c @@ -166,7 +166,8 @@ int mnt_optstr_next_option(char **optstr, char **name, size_t *namesz, return mnt_optstr_parse_next(optstr, name, namesz, value, valuesz); } -static int __mnt_optstr_append_option(char **optstr, +static int __attribute__((nonnull)) +__mnt_optstr_append_option(char **optstr, const char *name, size_t nsz, const char *value, size_t vsz) { @@ -356,7 +357,8 @@ int mnt_optstr_remove_option_at(char **optstr, char *begin, char *end) } /* insert 'substr' or '=substr' to @str on position @pos */ -static int insert_value(char **str, char *pos, const char *substr, char **next) +static int __attribute__((nonnull(1,2,3))) +insert_value(char **str, char *pos, const char *substr, char **next) { size_t subsz = strlen(substr); /* substring size */ size_t strsz = strlen(*str); diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c index 8a9d7349e..56da8ec47 100644 --- a/libmount/src/tab_parse.c +++ b/libmount/src/tab_parse.c @@ -791,7 +791,8 @@ 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; return 0; } @@ -804,7 +805,8 @@ int mnt_table_set_parser_fltrcb(struct libmnt_table *tb, int (*cb)(struct libmnt_fs *, void *), void *data) { - assert(tb); + if (!tb) + return -EINVAL; DBG(TAB, mnt_debug_h(tb, "%s table parser filter", cb ? "set" : "unset")); tb->fltrcb = cb; diff --git a/libmount/src/tab_update.c b/libmount/src/tab_update.c index 4f04c8ecd..7ae540abf 100644 --- a/libmount/src/tab_update.c +++ b/libmount/src/tab_update.c @@ -87,6 +87,8 @@ int mnt_update_set_filename(struct libmnt_update *upd, const char *filename, int rw = 0; assert(upd); + if (!upd) + return -EINVAL; /* filename explicitly defined */ if (filename) { diff --git a/libmount/src/utils.c b/libmount/src/utils.c index 74c3ad509..af6eb0b33 100644 --- a/libmount/src/utils.c +++ b/libmount/src/utils.c @@ -142,12 +142,14 @@ int mnt_chdir_to_parent(const char *target, char **filename) "current directory moved to %s [last_component='%s']", parent, last)); - *filename = buf; + if (filename) { + *filename = buf; - if (!last || !*last) - memcpy(*filename, ".", 2); - else - memcpy(*filename, last, strlen(last) + 1); + if (!last || !*last) + memcpy(*filename, ".", 2); + else + memcpy(*filename, last, strlen(last) + 1); + } return 0; err: free(buf); @@ -268,8 +270,6 @@ int mnt_fstype_is_pseudofs(const char *type) */ int mnt_fstype_is_netfs(const char *type) { - if (!type) - return 0; if (strcmp(type, "cifs") == 0 || strcmp(type, "smbfs") == 0 || strncmp(type,"nfs", 3) == 0 || @@ -811,8 +811,8 @@ int mnt_open_uniq_filename(const char *filename, char **name) int rc, fd; char *n; - assert(filename); - + if (!filename) + return -EINVAL; if (name) *name = NULL; @@ -922,8 +922,8 @@ char *mnt_get_kernel_cmdline_option(const char *name) char buf[BUFSIZ]; /* see kernel include/asm-generic/setup.h: COMMAND_LINE_SIZE */ const char *path = _PATH_PROC_CMDLINE; - assert(name); - assert(*name); + if (!name) + return NULL; #ifdef TEST_PROGRAM path = safe_getenv("LIBMOUNT_KERNEL_CMDLINE"); |