diff options
-rw-r--r-- | sbin/mount/getmntopts.c | 14 | ||||
-rw-r--r-- | sbin/mount/mntopts.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/sbin/mount/getmntopts.c b/sbin/mount/getmntopts.c index f8a3453..59a383e 100644 --- a/sbin/mount/getmntopts.c +++ b/sbin/mount/getmntopts.c @@ -181,3 +181,17 @@ build_iovec_argf(struct iovec **iov, int *iovlen, const char *name, va_end(ap); build_iovec(iov, iovlen, name, strdup(val), (size_t)-1); } + +/* + * Free the iovec and reset to NULL with zero length. Useful for calling + * nmount in a loop. + */ +void +free_iovec(struct iovec **iov, int *iovlen) +{ + int i; + + for (i = 0; i < *iovlen; i++) + free((*iov)[i].iov_base); + free(*iov); +} diff --git a/sbin/mount/mntopts.h b/sbin/mount/mntopts.h index d273dde..4cb83f1 100644 --- a/sbin/mount/mntopts.h +++ b/sbin/mount/mntopts.h @@ -99,3 +99,4 @@ int checkpath(const char *, char resolved_path[]); extern int getmnt_silent; void build_iovec(struct iovec **iov, int *iovlen, const char *name, void *val, size_t len); void build_iovec_argf(struct iovec **iov, int *iovlen, const char *name, const char *fmt, ...); +void free_iovec(struct iovec **iovec, int *iovlen); |