Merge branch 'maybe-for-v2.32' of https://github.com/rudimeier/util-linux
diff --git a/disk-utils/fsck.c b/disk-utils/fsck.c
index 58fd8ac..354f130 100644
--- a/disk-utils/fsck.c
+++ b/disk-utils/fsck.c
@@ -544,20 +544,22 @@
{
char *s;
const char *tpl;
- static char prog[256];
+ static char *prog = NULL;
char *p = xstrdup(fsck_path);
/* Are we looking for a program or just a type? */
tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s");
for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) {
- sprintf(prog, tpl, s, type);
+ xasprintf(&prog, tpl, s, type);
if (access(prog, X_OK) == 0)
break;
+ free(prog);
+ prog = NULL;
}
- free(p);
- return(s ? prog : NULL);
+ free(p);
+ return prog;
}
static int progress_active(void)
@@ -885,7 +887,7 @@
*/
static int fsck_device(struct libmnt_fs *fs, int interactive)
{
- char progname[80], *progpath;
+ char *progname, *progpath;
const char *type;
int retval;
@@ -902,9 +904,10 @@
else
type = DEFAULT_FSTYPE;
- sprintf(progname, "fsck.%s", type);
+ xasprintf(&progname, "fsck.%s", type);
progpath = find_fsck(progname);
if (progpath == NULL) {
+ free(progname);
if (fs_check_required(type)) {
retval = ENOENT;
goto err;
@@ -914,6 +917,8 @@
num_running++;
retval = execute(progname, progpath, type, fs, interactive);
+ free(progname);
+ free(progpath);
if (retval) {
num_running--;
goto err;
diff --git a/libsmartcols/src/table_print.c b/libsmartcols/src/table_print.c
index 5606d23..67e5107 100644
--- a/libsmartcols/src/table_print.c
+++ b/libsmartcols/src/table_print.c
@@ -387,6 +387,8 @@
if (!cl->pending_data)
return 0;
+ if (!width)
+ return -EINVAL;
DBG(COL, ul_debugobj(cl, "printing pending data"));
@@ -405,7 +407,8 @@
if (bytes == (size_t) -1)
goto err;
- step_pending_data(cl, bytes);
+ if (bytes)
+ step_pending_data(cl, bytes);
if (color)
fputs(color, tb->out);
@@ -1065,6 +1068,8 @@
size_t len = mbs_safe_width(scols_cell_get_data(&cl->header));
cl->width_min = max(cl->width_min, len);
}
+ if (!cl->width_min)
+ cl->width_min = 1;
}
scols_reset_iter(&itr, SCOLS_ITER_FORWARD);
@@ -1341,6 +1346,10 @@
width--;
break;
}
+
+ /* hide zero width columns */
+ if (cl->width == 0)
+ cl->flags |= SCOLS_FL_HIDDEN;
}
/* the current stage is without effect, go to the next */
diff --git a/sys-utils/lscpu-arm.c b/sys-utils/lscpu-arm.c
index cc3514a..f3a746a 100644
--- a/sys-utils/lscpu-arm.c
+++ b/sys-utils/lscpu-arm.c
@@ -77,6 +77,8 @@
};
static const struct id_part brcm_part[] = {
+ { 0x0f, "Brahma B15" },
+ { 0x100, "Brahma B53" },
{ 0x516, "ThunderX2" },
{ -1, "unknown" },
};
@@ -119,7 +121,6 @@
static const struct id_part samsung_part[] = {
{ 0x001, "exynos-m1" },
{ -1, "unknown" },
-
};
static const struct id_part nvidia_part[] = {
@@ -133,7 +134,12 @@
{ 0x581, "PJ4/PJ4b" },
{ 0x584, "PJ4B-MP" },
{ -1, "unknown" },
+};
+static const struct id_part faraday_part[] = {
+ { 0x526, "FA526" },
+ { 0x626, "FA626" },
+ { -1, "unknown" },
};
static const struct id_part intel_part[] = {
@@ -181,6 +187,7 @@
{ 0x51, qcom_part, "Qualcomm" },
{ 0x53, samsung_part, "Samsung" },
{ 0x56, marvell_part, "Marvell" },
+ { 0x66, faraday_part, "Faraday" },
{ 0x69, intel_part, "Intel" },
{ -1, unknown_part, "unknown" },
};