From: Karel Zak Date: Wed, 27 Mar 2013 15:47:46 +0000 (+0100) Subject: libmount: make mnt_table_find_* more robust [coverity scan] X-Git-Tag: v2.23-rc2~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4cd271adc1dd3231e705c9e074491a7f49a721b8;p=thirdparty%2Futil-linux.git libmount: make mnt_table_find_* more robust [coverity scan] Signed-off-by: Karel Zak --- diff --git a/libmount/src/tab.c b/libmount/src/tab.c index f70ed7de08..9d524c1c17 100644 --- a/libmount/src/tab.c +++ b/libmount/src/tab.c @@ -444,6 +444,8 @@ struct libmnt_fs *mnt_table_find_mountpoint(struct libmnt_table *tb, if (!tb || !path) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup MOUNTPOINT: %s", path)); @@ -494,6 +496,8 @@ struct libmnt_fs *mnt_table_find_target(struct libmnt_table *tb, const char *pat if (!tb || !path) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup TARGET: %s", path)); @@ -564,6 +568,8 @@ struct libmnt_fs *mnt_table_find_srcpath(struct libmnt_table *tb, const char *pa assert(tb); if (!tb || !path) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup srcpath: %s", path)); @@ -668,6 +674,8 @@ struct libmnt_fs *mnt_table_find_tag(struct libmnt_table *tb, const char *tag, if (!tb || !tag || !val) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup by TAG: %s %s", tag, val)); @@ -710,6 +718,8 @@ struct libmnt_fs *mnt_table_find_source(struct libmnt_table *tb, if (!tb) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup SOURCE: %s", source)); @@ -753,6 +763,8 @@ struct libmnt_fs *mnt_table_find_pair(struct libmnt_table *tb, const char *sourc if (!tb || !target) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup SOURCE: %s TARGET: %s", source, target)); @@ -788,6 +800,8 @@ struct libmnt_fs *mnt_table_find_devno(struct libmnt_table *tb, if (!tb) return NULL; + if (direction != MNT_ITER_FORWARD && direction != MNT_ITER_BACKWARD) + return NULL; DBG(TAB, mnt_debug_h(tb, "lookup DEVNO: %d", (int) devno));