Fix alignment of buffer used for dm_ioctl.

Since the dm_ioctl struct was being allocated on the stack as a large
character array, it was getting character alignment rather than the
proper alignment for the struct. GCC had been getting away with this
so far, but it's undefined behavior that clang managed to expose.

Bug: 18736778
Change-Id: Ied275dfad7fcc41d712b2d02c8a185f499221f57
diff --git a/cryptfs.c b/cryptfs.c
index aefc606..aaa2b86 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -972,7 +972,7 @@
                                      char *real_blk_name, const char *name, int fd,
                                      char *extra_params)
 {
-  char buffer[DM_CRYPT_BUF_SIZE];
+  _Alignas(struct dm_ioctl) char buffer[DM_CRYPT_BUF_SIZE];
   struct dm_ioctl *io;
   struct dm_target_spec *tgt;
   char *crypt_params;