Cast uid and gid to the correct type for display to solve segfault in ls(1) on 32bit arches
Correctly escape literal % for display This fixes segfaults in 32bit arches caused by r285734 Reviewed by: ngie Approved by: dim Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3191
This commit is contained in:
parent
268d180ee5
commit
5af1607586
@ -192,7 +192,7 @@ printlong(const DISPLAY *dp)
|
|||||||
if (f_numericonly) {
|
if (f_numericonly) {
|
||||||
xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {td:user/%-*s}{e:user/%ju} {td:group/%-*s}{e:group/%ju} ",
|
xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {td:user/%-*s}{e:user/%ju} {td:group/%-*s}{e:group/%ju} ",
|
||||||
buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink,
|
buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink,
|
||||||
dp->s_user, np->user, sp->st_uid, dp->s_group, np->group, sp->st_gid);
|
dp->s_user, np->user, (uintmax_t)sp->st_uid, dp->s_group, np->group, (uintmax_t)sp->st_gid);
|
||||||
} else {
|
} else {
|
||||||
xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {t:user/%-*s} {t:group/%-*s} ",
|
xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {t:user/%-*s} {t:group/%-*s} ",
|
||||||
buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink,
|
buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink,
|
||||||
@ -486,7 +486,7 @@ printtype(u_int mode)
|
|||||||
xo_emit("{D:=}{e:type/socket}");
|
xo_emit("{D:=}{e:type/socket}");
|
||||||
return (1);
|
return (1);
|
||||||
case S_IFWHT:
|
case S_IFWHT:
|
||||||
xo_emit("{D:%}{e:type/whiteout}");
|
xo_emit("{D:%%}{e:type/whiteout}");
|
||||||
return (1);
|
return (1);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user