Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 201570
Collapse All | Expand All

(-)backend/snmp.c (-3 / +23 lines)
Lines 1064-1081 Link Here
1064
   char          *string,		/* I  - String buffer */
1064
   char          *string,		/* I  - String buffer */
1065
   int           strsize)		/* I  - String buffer size */
1065
   int           strsize)		/* I  - String buffer size */
1066
  if (length < strsize)
1066
  if (length < 0)
1067
 {
1067
 {
1068
    memcpy(string, *buffer, length);
1068
   /*
1069
    * Disallow negative lengths!
1070
    */
1071
1072
    fprintf(stderr, "ERROR: Bad ASN1 string length %d!\n", length);
1073
    *string = '\0';
1074
  }
1075
  else if (length < strsize)
1076
  {
1077
   /*
1078
    * String is smaller than the buffer...
1079
    */
1080
1081
    if (length > 0)
1082
      memcpy(string, *buffer, length);
1083
1069
   string[length] = '\0';
1084
   string[length] = '\0';
1070
 }
1085
 }
1071
 else
1086
 else
1072
 {
1087
 {
1088
   /*
1089
    * String is larger than the buffer...
1090
    */
1091
1073
   memcpy(string, buffer, strsize - 1);
1092
   memcpy(string, buffer, strsize - 1);
1074
   string[strsize - 1] = '\0';
1093
   string[strsize - 1] = '\0';
1075
 }
1094
 }
1076
  (*buffer) += length;
1095
  if (length > 0)
1096
    (*buffer) += length;
1077
 return (string);
1097
 return (string);

Return to bug 201570