Signed-off-by: Andreas Piesk <[email protected]>
---
usr/sbin/pkcsconf/pkcsconf.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/usr/sbin/pkcsconf/pkcsconf.c b/usr/sbin/pkcsconf/pkcsconf.c
index f81fe85..66c987a 100755
--- a/usr/sbin/pkcsconf/pkcsconf.c
+++ b/usr/sbin/pkcsconf/pkcsconf.c
@@ -1135,12 +1135,20 @@ init_token(int slot_id, CK_CHAR_PTR pin){
* unique token label; however the PKCS11 spec does not. */
printf(PKCSINIT_MSG(GETLABEL, "Enter a unique token label: "));
fflush(stdout);
- fgets((char *)enteredlabel, sizeof(enteredlabel), stdin);
+
+ memset(enteredlabel, 0, sizeof(enteredlabel));
+ if(fgets((char *)enteredlabel, sizeof(enteredlabel), stdin) == NULL) {
+ /* cosmetic: print newline because no newline has been entered */
+ printf("\n");
+ } else {
+ /* chop trailing newline */
+ enteredlabel[strcspn((const char*)enteredlabel,"\n")] = '\0';
+ }
/* First clear the label array. Per PKCS#11 spec, We must PAD this field to
* 32 bytes, and it should NOT be null-terminated */
- memset(label, ' ', 32);
- strncpy((char *)label, (char *)enteredlabel, strlen((char *)enteredlabel)
- 1); // Strip the \n
+ memset(label, ' ', sizeof(label));
+ strncpy((char *)label, (char *)enteredlabel, strlen((char *)enteredlabel));
rc = FunctionPtr->C_InitToken(slot_id, pin,
pinlen, label);
--
1.7.1
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech