--- systemd-pam-185/src/fsck/fsck.c.orig 2012-06-22 23:22:22.000000000 -0400 +++ systemd-pam-185/src/fsck/fsck.c 2012-06-22 21:15:56.000000000 -0400 @@ -36,6 +36,8 @@ #include "bus-errors.h" #include "virt.h" +#include "config.h" + static bool arg_skip = false; static bool arg_force = false; static bool arg_show_progress = false; @@ -193,9 +195,16 @@ char *device; double p; usec_t t; - +#ifdef HAVE_MSFORMAT if (fscanf(f, "%i %lu %lu %ms", &pass, &cur, &max, &device) != 4) - break; +#else + device = malloc(257); + if (fscanf(f, "%i %lu %lu %256s", &pass, &cur, &max, device) != 4) { + free(device); + } + +#endif /* HAVE_MSFORMAT */ + break; /* Only show one progress counter at max */ if (!locked) { --- systemd-pam-185/src/core/swap.c.orig 2012-06-22 23:22:55.000000000 -0400 +++ systemd-pam-185/src/core/swap.c 2012-06-22 21:17:10.000000000 -0400 @@ -40,6 +40,8 @@ #include "def.h" #include "path-util.h" +#include "config.h" + static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = { [SWAP_DEAD] = UNIT_INACTIVE, [SWAP_ACTIVATING] = UNIT_ACTIVATING, @@ -1038,7 +1040,7 @@ for (i = 1;; i++) { char *dev = NULL, *d; int prio = 0, k; - +#ifdef HAVE_MSFORMAT if ((k = fscanf(m->proc_swaps, "%ms " /* device/file */ "%*s " /* type of swap */ @@ -1046,10 +1048,18 @@ "%*s " /* used */ "%i\n", /* priority */ &dev, &prio)) != 2) { - +#else + dev = malloc(257); + if ((k = fscanf(m->proc_swaps, + "%256s " /* device/file */ + "%*s " /* type of swap */ + "%*s " /* swap size */ + "%*s " /* used */ + "%i\n", /* priority */ + dev, &prio)) != 2) { +#endif /* HAVE_MSFORMAT */ if (k == EOF) break; - log_warning("Failed to parse /proc/swaps:%u.", i); free(dev); continue; --- systemd-pam-185/src/core/mount-setup.c.orig 2012-06-22 23:23:41.000000000 -0400 +++ systemd-pam-185/src/core/mount-setup.c 2012-06-22 21:19:44.000000000 -0400 @@ -28,6 +28,7 @@ #include #include #include +#include #include "mount-setup.h" #include "dev-setup.h" @@ -41,6 +41,8 @@ #include "path-util.h" #include "missing.h" +#include "config.h" + #ifndef TTY_GID #define TTY_GID 5 #endif @@ -200,9 +202,12 @@ for (;;) { char *controller; int enabled = 0; - +#ifdef HAVE_MSFORMAT if (fscanf(f, "%ms %*i %*i %i", &controller, &enabled) != 2) { - +#else + controller = malloc(257); + if (fscanf(f, "%256s %*i %*i %i", controller, &enabled) != 2) { +#endif /* HAVE_MSFORMAT */ if (feof(f)) break; --- systemd-pam-185/src/core/mount.c.orig 2012-06-22 23:24:17.000000000 -0400 +++ systemd-pam-185/src/core/mount.c 2012-06-22 22:51:21.000000000 -0400 @@ -41,6 +41,8 @@ #include "exit-status.h" #include "def.h" +#include "config.h" + static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { [MOUNT_DEAD] = UNIT_INACTIVE, [MOUNT_MOUNTING] = UNIT_ACTIVATING, @@ -1514,7 +1516,7 @@ int k; device = path = options = options2 = fstype = d = p = o = NULL; - +#ifdef HAVE_MSFORMAT if ((k = fscanf(m->proc_self_mountinfo, "%*s " /* (1) mount id */ "%*s " /* (2) parent id */ @@ -1533,7 +1535,31 @@ &fstype, &device, &options2)) != 5) { - +#else + path = malloc(257); + options = malloc(257); + fstype = malloc(257); + device = malloc(257); + options2 = malloc(257); + if ((k = fscanf(m->proc_self_mountinfo, + "%*s " /* (1) mount id */ + "%*s " /* (2) parent id */ + "%*s " /* (3) major:minor */ + "%*s " /* (4) root */ + "%256s " /* (5) mount point */ + "%256s" /* (6) mount options */ + "%*[^-]" /* (7) optional fields */ + "- " /* (8) separator */ + "%256s " /* (9) file system type */ + "%256s" /* (10) mount source */ + "%256s" /* (11) mount options 2 */ + "%*[^\n]", /* some rubbish at the end */ + path, + options, + fstype, + device, + options2)) != 5) { +#endif /* HAVE_MSFORMAT */ if (k == EOF) break; --- systemd-pam-185/src/core/umount.c.orig 2012-06-22 23:24:37.000000000 -0400 +++ systemd-pam-185/src/core/umount.c 2012-06-22 22:56:15.000000000 -0400 @@ -35,6 +35,8 @@ #include "path-util.h" #include "util.h" +#include "config.h" + typedef struct MountPoint { char *path; dev_t devnum; @@ -74,7 +76,7 @@ MountPoint *m; path = p = NULL; - +#ifdef HAVE_MSFORMAT if ((k = fscanf(proc_self_mountinfo, "%*s " /* (1) mount id */ "%*s " /* (2) parent id */ @@ -89,6 +91,23 @@ "%*s" /* (11) mount options 2 */ "%*[^\n]", /* some rubbish at the end */ &path)) != 1) { +#else + path = malloc(257); + if ((k = fscanf(proc_self_mountinfo, + "%*s " /* (1) mount id */ + "%*s " /* (2) parent id */ + "%*s " /* (3) major:minor */ + "%*s " /* (4) root */ + "%256s " /* (5) mount point */ + "%*s" /* (6) mount options */ + "%*[^-]" /* (7) optional fields */ + "- " /* (8) separator */ + "%*s " /* (9) file system type */ + "%*s" /* (10) mount source */ + "%*s" /* (11) mount options 2 */ + "%*[^\n]", /* some rubbish at the end */ + path)) != 1) { +#endif /* HAVE_MSFORMAT */ if (k == EOF) break; @@ -150,7 +169,7 @@ MountPoint *swap; char *dev = NULL, *d; int k; - +#ifdef HAVE_MSFORMAT if ((k = fscanf(proc_swaps, "%ms " /* device/file */ "%*s " /* type of swap */ @@ -158,7 +177,16 @@ "%*s " /* used */ "%*s\n", /* priority */ &dev)) != 1) { - +#else + dev = malloc(257); + if ((k = fscanf(proc_swaps, + "%256s " /* device/file */ + "%*s " /* type of swap */ + "%*s " /* swap size */ + "%*s " /* used */ + "%*s\n", /* priority */ + dev)) != 1) { +#endif /* HAVE_MSFORMAT */ if (k == EOF) break; --- systemd-pam-185/src/shared/socket-util.c.orig 2012-06-22 23:25:00.000000000 -0400 +++ systemd-pam-185/src/shared/socket-util.c 2012-06-22 22:59:27.000000000 -0400 @@ -39,6 +39,8 @@ #include "socket-util.h" #include "missing.h" +#include "config.h" + int socket_address_parse(SocketAddress *a, const char *s) { int r; char *e, *n; @@ -201,8 +203,16 @@ a->type = SOCK_RAW; errno = 0; - if (sscanf(s, "%ms %u", &sfamily, &group) < 1) +#ifdef HAVE_MSFORMAT + if (sscanf(s, "%ms %u", &sfamily, &group) < 1) + return errno ? -errno : -EINVAL; +#else + sfamily = malloc(257); + if (sscanf(s, "%256s %u", sfamily, &group) < 1) { + free(sfamily); return errno ? -errno : -EINVAL; + } +#endif /* HAVE_MSFORMAT */ if ((family = netlink_family_from_string(sfamily)) < 0) if (safe_atoi(sfamily, &family) < 0) { --- systemd-pam-185/src/tmpfiles/tmpfiles.c.orig 2012-06-22 23:25:21.000000000 -0400 +++ systemd-pam-185/src/tmpfiles/tmpfiles.c 2012-06-22 23:13:49.000000000 -0400 @@ -48,6 +48,8 @@ #include "set.h" #include "conf-files.h" +#include "config.h" + /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates * them in the file system. This is intended to be used to create * properly owned directories beneath /tmp, /var/tmp, /run, which are @@ -970,7 +972,7 @@ i = new0(Item, 1); if (!i) return log_oom(); - +#ifdef HAVE_MSFORMAT if (sscanf(buffer, "%c " "%ms " @@ -986,6 +988,28 @@ &group, &age, &n) < 2) { +#else + i->path = malloc(257); + mode = malloc(257); + user = malloc(257); + group = malloc(257); + age = malloc(257); + if (sscanf(buffer, + "%c " + "%256s " + "%256s " + "%256s " + "%256s " + "%256s " + "%n", + &type, + i->path, + mode, + user, + group, + age, + &n) < 2) { +#endif /* HAVE_MSFORMAT */ log_error("[%s:%u] Syntax error.", fname, line); r = -EIO; goto finish; --- systemd-pam-185/src/cryptsetup/cryptsetup-generator.c.orig 2012-06-22 23:25:47.000000000 -0400 +++ systemd-pam-185/src/cryptsetup/cryptsetup-generator.c 2012-06-22 23:16:35.000000000 -0400 @@ -30,6 +30,8 @@ #include "virt.h" #include "strv.h" +#include "config.h" + static const char *arg_dest = "/tmp"; static bool arg_enabled = true; static bool arg_read_crypttab = true; @@ -421,8 +423,15 @@ l = strstrip(line); if (*l == '#' || *l == 0) continue; - +#ifdef HAVE_MSFORMAT k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); +#else + name = malloc(257); + device = malloc(257); + password = malloc(257); + options = malloc(257); + k = sscanf(l, "%256s %256s %256s %256s", name, device, password, options); +#endif /* HAVE_MSFORMAT */ if (k < 2 || k > 4) { log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); r = EXIT_FAILURE;