diff --git a/Volume.cpp b/Volume.cpp
index c290200..80552b6 100644
--- a/Volume.cpp
+++ b/Volume.cpp
@@ -378,14 +378,14 @@
 
        if (n != 1) {
            /* We only expect one device node returned when mounting encryptable volumes */
-           SLOGE("Too many device nodes returned when mounting %d\n", getMountpoint());
+           SLOGE("Too many device nodes returned when mounting %s\n", getMountpoint());
            return -1;
        }
 
        if (cryptfs_setup_volume(getLabel(), MAJOR(deviceNodes[0]), MINOR(deviceNodes[0]),
                                 new_sys_path, sizeof(new_sys_path),
                                 &new_major, &new_minor)) {
-           SLOGE("Cannot setup encryption mapping for %d\n", getMountpoint());
+           SLOGE("Cannot setup encryption mapping for %s\n", getMountpoint());
            return -1;
        }
        /* We now have the new sysfs path for the decrypted block device, and the
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index f9b7b6a..9440832 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -91,7 +91,7 @@
         errno = ESPIPE;
         return NULL;
     } else if (len < MD5_ASCII_LENGTH_PLUS_NULL) {
-        SLOGE("Target hash buffer size < %d bytes (%d)",
+        SLOGE("Target hash buffer size < %d bytes (%zu)",
                 MD5_ASCII_LENGTH_PLUS_NULL, len);
         errno = ESPIPE;
         return NULL;
@@ -1028,7 +1028,7 @@
 
     int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id);
     if ((written < 0) || (size_t(written) >= sizeof(mountPoint))) {
-        SLOGE("ASEC mount failed: couldn't construct mountpoint", id);
+        SLOGE("ASEC mount failed for %s: couldn't construct mountpoint", id);
         return -1;
     }
 
@@ -1175,7 +1175,7 @@
 
     int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::LOOPDIR, idHash);
     if ((written < 0) || (size_t(written) >= sizeof(mountPoint))) {
-        SLOGE("OBB mount failed: couldn't construct mountpoint", img);
+        SLOGE("OBB mount failed for %s: couldn't construct mountpoint", img);
         return -1;
     }
 
diff --git a/cryptfs.c b/cryptfs.c
index 6247014..a742a63 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -276,7 +276,7 @@
   /* If the keys are kept on a raw block device, do not try to truncate it. */
   if (S_ISREG(statbuf.st_mode)) {
     if (ftruncate(fd, 0x4000)) {
-      SLOGE("Cannot set footer file size\n", fname);
+      SLOGE("Cannot set footer file size\n");
       goto errout;
     }
   }
