X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fluks.c;h=02620ef8aeb4924062167c4acb2963347f903a96;hb=d81c0829ea4a99aadb98df37be9543a973269041;hp=0b59b5ac74a252ca7f01b6dbd5ba698d9c3964f3;hpb=a0b7045e0abb7e3a7ff4d1324f16e50de94bed55;p=libguestfs.git diff --git a/daemon/luks.c b/daemon/luks.c index 0b59b5a..02620ef 100644 --- a/daemon/luks.c +++ b/daemon/luks.c @@ -13,7 +13,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -26,6 +26,8 @@ #include "actions.h" #include "optgroups.h" +#define MAX_ARGS 64 + int optgroup_luks_available (void) { @@ -95,17 +97,17 @@ luks_open (const char *device, const char *key, const char *mapname, if (!tempfile) return -1; - const char *argv[16]; + const char *argv[MAX_ARGS]; size_t i = 0; - argv[i++] = "cryptsetup"; - argv[i++] = "-d"; - argv[i++] = tempfile; - if (readonly) argv[i++] = "--readonly"; - argv[i++] = "luksOpen"; - argv[i++] = device; - argv[i++] = mapname; - argv[i++] = NULL; + ADD_ARG (argv, i, "cryptsetup"); + ADD_ARG (argv, i, "-d"); + ADD_ARG (argv, i, tempfile); + if (readonly) ADD_ARG (argv, i, "--readonly"); + ADD_ARG (argv, i, "luksOpen"); + ADD_ARG (argv, i, device); + ADD_ARG (argv, i, mapname); + ADD_ARG (argv, i, NULL); char *err; int r = commandv (NULL, &err, (const char * const *) argv); @@ -170,23 +172,23 @@ luks_format (const char *device, const char *key, int keyslot, if (!tempfile) return -1; - const char *argv[16]; + const char *argv[MAX_ARGS]; char keyslot_s[16]; size_t i = 0; - argv[i++] = "cryptsetup"; - argv[i++] = "-q"; + ADD_ARG (argv, i, "cryptsetup"); + ADD_ARG (argv, i, "-q"); if (cipher) { - argv[i++] = "--cipher"; - argv[i++] = cipher; + ADD_ARG (argv, i, "--cipher"); + ADD_ARG (argv, i, cipher); } - argv[i++] = "--key-slot"; + ADD_ARG (argv, i, "--key-slot"); snprintf (keyslot_s, sizeof keyslot_s, "%d", keyslot); - argv[i++] = keyslot_s; - argv[i++] = "luksFormat"; - argv[i++] = device; - argv[i++] = tempfile; - argv[i++] = NULL; + ADD_ARG (argv, i, keyslot_s); + ADD_ARG (argv, i, "luksFormat"); + ADD_ARG (argv, i, device); + ADD_ARG (argv, i, tempfile); + ADD_ARG (argv, i, NULL); char *err; int r = commandv (NULL, &err, (const char * const *) argv); @@ -232,21 +234,21 @@ do_luks_add_key (const char *device, const char *key, const char *newkey, return -1; } - const char *argv[16]; + const char *argv[MAX_ARGS]; char keyslot_s[16]; size_t i = 0; - argv[i++] = "cryptsetup"; - argv[i++] = "-q"; - argv[i++] = "-d"; - argv[i++] = keyfile; - argv[i++] = "--key-slot"; + ADD_ARG (argv, i, "cryptsetup"); + ADD_ARG (argv, i, "-q"); + ADD_ARG (argv, i, "-d"); + ADD_ARG (argv, i, keyfile); + ADD_ARG (argv, i, "--key-slot"); snprintf (keyslot_s, sizeof keyslot_s, "%d", keyslot); - argv[i++] = keyslot_s; - argv[i++] = "luksAddKey"; - argv[i++] = device; - argv[i++] = newkeyfile; - argv[i++] = NULL; + ADD_ARG (argv, i, keyslot_s); + ADD_ARG (argv, i, "luksAddKey"); + ADD_ARG (argv, i, device); + ADD_ARG (argv, i, newkeyfile); + ADD_ARG (argv, i, NULL); char *err; int r = commandv (NULL, &err, (const char * const *) argv); @@ -271,19 +273,19 @@ do_luks_kill_slot (const char *device, const char *key, int keyslot) if (!tempfile) return -1; - const char *argv[16]; + const char *argv[MAX_ARGS]; char keyslot_s[16]; size_t i = 0; - argv[i++] = "cryptsetup"; - argv[i++] = "-q"; - argv[i++] = "-d"; - argv[i++] = tempfile; - argv[i++] = "luksKillSlot"; - argv[i++] = device; + ADD_ARG (argv, i, "cryptsetup"); + ADD_ARG (argv, i, "-q"); + ADD_ARG (argv, i, "-d"); + ADD_ARG (argv, i, tempfile); + ADD_ARG (argv, i, "luksKillSlot"); + ADD_ARG (argv, i, device); snprintf (keyslot_s, sizeof keyslot_s, "%d", keyslot); - argv[i++] = keyslot_s; - argv[i++] = NULL; + ADD_ARG (argv, i, keyslot_s); + ADD_ARG (argv, i, NULL); char *err; int r = commandv (NULL, &err, (const char * const *) argv);