X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fnames.c;h=bda8c908fd6cee2fe89ef74a15da1d0c67deba41;hb=17ec7e70ea71a3ccbccf9f3b9cfe846eb1200e0d;hp=26de128318aae067a27257eb0687deb80b3d8034;hpb=5904157c58a213c7569333e12f8b8ba96f90710e;p=pciutils.git diff --git a/lib/names.c b/lib/names.c index 26de128..bda8c90 100644 --- a/lib/names.c +++ b/lib/names.c @@ -69,10 +69,11 @@ format_name(char *buf, int size, int flags, char *name, char *num, char *unknown res = snprintf(buf, size, "%s", name); else res = snprintf(buf, size, "%s [%s]", name, num); - if (res < 0 || res >= size) + if (res >= size && size >= 4) + buf[size-2] = buf[size-3] = buf[size-4] = '.'; + else if (res < 0 || res >= size) return ""; - else - return buf; + return buf; } static char * @@ -101,10 +102,11 @@ format_name_pair(char *buf, int size, int flags, char *v, char *d, char *num) else /* v && !d */ res = snprintf(buf, size, "%s Device %s", v, num+5); } - if (res < 0 || res >= size) + if (res >= size && size >= 4) + buf[size-2] = buf[size-3] = buf[size-4] = '.'; + else if (res < 0 || res >= size) return ""; - else - return buf; + return buf; } char *