pkcs11: truncate oversized labels with '...'
This commit is contained in:
parent
1e6d3df201
commit
0079d836f3
@ -43,16 +43,26 @@ static struct sc_to_cryptoki_error_conversion sc_to_cryptoki_error_map[] = {
|
|||||||
|
|
||||||
void strcpy_bp(u8 * dst, const char *src, size_t dstsize)
|
void strcpy_bp(u8 * dst, const char *src, size_t dstsize)
|
||||||
{
|
{
|
||||||
size_t c;
|
if (!dst || !dstsize)
|
||||||
|
|
||||||
if (!dst || !src || !dstsize)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
memset((char *)dst, ' ', dstsize);
|
memset((char *)dst, ' ', dstsize);
|
||||||
|
|
||||||
c = strlen(src) > dstsize ? dstsize : strlen(src);
|
if (src) {
|
||||||
|
size_t src_len = strlen(src);
|
||||||
|
|
||||||
memcpy((char *)dst, src, c);
|
if (src_len > dstsize) {
|
||||||
|
/* string will be truncated */
|
||||||
|
memcpy((char *)dst, src, dstsize);
|
||||||
|
if (dstsize > 3) {
|
||||||
|
/* show truncation with '...' */
|
||||||
|
/* FIXME avoid breaking an UTF-8 character on multiple bytes */
|
||||||
|
memset((char *)dst + dstsize - 3, '.', 3);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
memcpy((char *)dst, src, src_len);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user