Changeset 8d30e02 in code for icb.c


Ignore:
Timestamp:
Jan 18, 2015, 10:38:34 PM (10 years ago)
Author:
Mike Belopuhov <mike@…>
Branches:
master
Children:
f73b386
Parents:
d27dc1e
Message:

icb_vis improvements

  • don't allow trailing single percentage signs;
  • properly handle snprintf return value;
File:
1 edited

Legend:

Unmodified
Added
Removed
  • icb.c

    rd27dc1e r8d30e02  
    635635        while ((size_t)di < dstsize - 1 && src[si] != '\0') {
    636636                if (src[si] == '%')
     637                        if (di + 1 >= dstsize - 1)
     638                                break;
    637639                        dst[di++] = '%', dst[di] = '%';
    638640                else if (src[si] == ' ' && flags & VIS_SP)
     
    643645                        td = snprintf(&dst[di], dstsize - di,
    644646                            "\\%03o", (unsigned char)src[si]);
     647                        if (td == -1 || td >= dstsize - di)
     648                                break;
    645649                        di += td - 1;
    646650                }
Note: See TracChangeset for help on using the changeset viewer.