[BACK]Return to smi.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / snmp

Diff for /src/usr.bin/snmp/smi.c between version 1.10 and 1.11

version 1.10, 2020/08/03 14:45:54 version 1.11, 2020/08/08 07:18:08
Line 642 
Line 642 
     size_t srclen, int utf8)      size_t srclen, int utf8)
 {  {
         size_t octetlength, i = 0, j = 0;          size_t octetlength, i = 0, j = 0;
           size_t prefixlen;
         unsigned long ulval;          unsigned long ulval;
         int clen;          int clen;
         char *displayformat;          char *displayformat;
           const char *prefix;
         char *rbuf, *dst;          char *rbuf, *dst;
         wchar_t wc;          wchar_t wc;
   
           prefix = print_hint ? "STRING: " : "";
           prefixlen = strlen(prefix);
   
         errno = 0;          errno = 0;
         ulval = strtoul(tc->tc_display_hint, &displayformat, 10);          ulval = strtoul(tc->tc_display_hint, &displayformat, 10);
         octetlength = ulval;          octetlength = ulval;
Line 658 
Line 663 
                 return NULL;                  return NULL;
         }          }
   
         if (displayformat[0] == 't') {          if (displayformat[0] == 't' || displayformat[0] == 'a') {
                 if (print_hint) {                  if ((rbuf = malloc(prefixlen + octetlength + 1)) == NULL)
                         rbuf = malloc(octetlength + sizeof("STRING: "));                          return NULL;
                         if (rbuf == NULL)                  (void)strlcpy(rbuf, prefix, prefixlen + octetlength + 1);
                                 return NULL;                  dst = rbuf + prefixlen;
                         memcpy(rbuf, "STRING: ", sizeof("STRING: ") - 1);  
                         dst = rbuf + sizeof("STRING: ") - 1;  
                 } else {  
                         dst = rbuf = malloc(octetlength + 1);  
                         if (rbuf == NULL)  
                                 return NULL;  
                 }  
                 while (j < octetlength && i < srclen) {                  while (j < octetlength && i < srclen) {
                         clen = mbtowc(&wc, &(src[i]), srclen - i);                          clen = mbtowc(&wc, &(src[i]), srclen - i);
                           if (displayformat[0] == 'a' && clen > 1)
                                   clen = -1;
                         switch (clen) {                          switch (clen) {
                         case 0:                          case 0:
                                 dst[j++] = '.';                                  dst[j++] = '.';

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11