Fixing code page conversion involved mount bustage by allowing set_charset() to pass build_iovec_argf() modified iov to the caller. Index: mount_cd9660.c =================================================================== RCS file: /home/ncvs/src/sbin/mount_cd9660/mount_cd9660.c,v retrieving revision 1.31 diff -u -p -r1.31 mount_cd9660.c --- mount_cd9660.c 13 Nov 2005 01:39:55 -0000 1.31 +++ mount_cd9660.c 24 Nov 2005 00:26:34 -0000 @@ -75,7 +75,7 @@ struct mntopt mopts[] = { }; static int get_ssector(const char *dev); -static int set_charset(struct iovec *, int *iovlen, const char *); +static int set_charset(struct iovec **, int *iovlen, const char *); void usage(void); int @@ -128,7 +128,7 @@ main(int argc, char **argv) verbose++; break; case 'C': - if (set_charset(iov, &iovlen, optarg) == -1) + if (set_charset(&iov, &iovlen, optarg) == -1) err(EX_OSERR, "cd9660_iconv"); build_iovec(&iov, &iovlen, "kiconv", NULL, (size_t)-1); break; @@ -234,7 +234,7 @@ get_ssector(const char *dev) } static int -set_charset(struct iovec *iov, int *iovlen, const char *localcs) +set_charset(struct iovec **iov, int *iovlen, const char *localcs) { int error; char *cs_disk; /* disk charset for Joliet cs conversion */ @@ -260,8 +260,8 @@ set_charset(struct iovec *iov, int *iovl if (error) return (-1); - build_iovec(&iov, iovlen, "cs_disk", cs_disk, (size_t)-1); - build_iovec(&iov, iovlen, "cs_local", cs_local, (size_t)-1); + build_iovec(iov, iovlen, "cs_disk", cs_disk, (size_t)-1); + build_iovec(iov, iovlen, "cs_local", cs_local, (size_t)-1); return (0); }