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); |