--- util-linux-2.23/libmount/src/tab_parse.c 2013-04-12 12:04:05.000000000 +0200 +++ util-linux/libmount/src/tab_parse.c 2013-05-30 08:37:39.000000000 +0200 @@ -61,16 +61,18 @@ int rc, n = 0, xrc; char *src = NULL, *fstype = NULL, *optstr = NULL; +#undef UL_SCNsA +#define UL_SCNsA "%s" rc = sscanf(s, UL_SCNsA" " /* (1) source */ UL_SCNsA" " /* (2) target */ UL_SCNsA" " /* (3) FS type */ UL_SCNsA" " /* (4) options */ "%n", /* byte count */ - &src, - &fs->target, - &fstype, - &optstr, + src=malloc(200), + fs->target=malloc(200), + fstype=malloc(200), + optstr=malloc(200), &n); xrc = rc; @@ -147,9 +149,9 @@ &fs->id, &fs->parent, &maj, &min, - &fs->root, - &fs->target, - &fs->vfs_optstr, + fs->root=malloc(200), + fs->target=malloc(200), + fs->vfs_optstr=malloc(200), &end); if (rc >= 7 && end > 0) @@ -169,9 +171,9 @@ UL_SCNsA" " /* (9) source */ UL_SCNsA, /* (10) fs options (fs specific) */ - &fstype, - &src, - &fs->fs_optstr); + fstype=malloc(200), + src=malloc(200), + fs->fs_optstr=malloc(200)); if (rc >= 10) { fs->flags |= MNT_FS_KERNEL; @@ -285,8 +287,8 @@ "%jd" /* (4) used */ "%d", /* priority */ - &src, - &fs->swaptype, + src=malloc(200), + fs->swaptype=malloc(200), &fsz, &usz, &fs->priority);