diff options
Diffstat (limited to 'mtd.c')
-rw-r--r-- | mtd.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -307,6 +307,7 @@ int ubi_ioctl(struct tcb *tcp, long code, long arg) struct ubi_set_vol_prop_req prop; /* 4*(n-1) + 3 for quotes and NUL */ char vol_name[(UBI_MAX_VOLUME_NAME + 1) * 4]; + int ret; if (entering(tcp)) return 0; @@ -320,9 +321,10 @@ int ubi_ioctl(struct tcb *tcp, long code, long arg) ", bytes=%" PRIi64 ", vol_type=", mkvol.vol_id, mkvol.alignment, (int64_t)mkvol.bytes); printxval(ubi_volume_types, mkvol.vol_type, "UBI_???_VOLUME"); - string_quote(mkvol.name, vol_name, -1, mkvol.name_len); - tprintf(", name_len=%" PRIi16 ", name=%s", - mkvol.name_len, vol_name); + ret = string_quote(mkvol.name, vol_name, -1, + CLAMP(mkvol.name_len, 0, UBI_MAX_VOLUME_NAME)); + tprintf(", name_len=%" PRIi16 ", name=%s%s", + mkvol.name_len, vol_name, ret ? "..." : ""); tprints("}"); return 1; @@ -344,11 +346,11 @@ int ubi_ioctl(struct tcb *tcp, long code, long arg) for (c = 0; c < CLAMP(rnvol.count, 0, UBI_MAX_RNVOL); ++c) { if (c) tprints(", "); - string_quote(rnvol.ents[c].name, vol_name, -1, - rnvol.ents[c].name_len); + ret = string_quote(rnvol.ents[c].name, vol_name, -1, + CLAMP(rnvol.ents[c].name_len, 0, UBI_MAX_VOLUME_NAME)); tprintf("{vol_id=%" PRIi32 ", name_len=%" PRIi16 - ", name=%s}", rnvol.ents[c].vol_id, - rnvol.ents[c].name_len, vol_name); + ", name=%s%s}", rnvol.ents[c].vol_id, + rnvol.ents[c].name_len, vol_name, ret ? "..." : ""); } tprints("]}"); return 1; |