fixed not null terminated buffer

This commit is contained in:
Frank Morgner 2015-01-28 05:51:00 +01:00
parent 77752f442d
commit 7c497b324f
2 changed files with 6 additions and 4 deletions

View File

@ -29,6 +29,7 @@
#include "internal.h" #include "internal.h"
#include "asn1.h" #include "asn1.h"
#include "common/compat_strlcpy.h"
/* /*
#define INVALIDATE_CARD_CACHE_IN_UNLOCK #define INVALIDATE_CARD_CACHE_IN_UNLOCK
@ -1258,8 +1259,8 @@ sc_card_sm_check(struct sc_card *card)
rv = sc_card_sm_load(card, module_path, module_name); rv = sc_card_sm_load(card, module_path, module_name);
LOG_TEST_RET(ctx, rv, "Failed to load SM module"); LOG_TEST_RET(ctx, rv, "Failed to load SM module");
strncpy(card->sm_ctx.module.filename, module_name, sizeof(card->sm_ctx.module.filename)); strlcpy(card->sm_ctx.module.filename, module_name, sizeof(card->sm_ctx.module.filename));
strncpy(card->sm_ctx.config_section, sm, sizeof(card->sm_ctx.config_section)); strlcpy(card->sm_ctx.config_section, sm, sizeof(card->sm_ctx.config_section));
/* allocate resources for the external SM module */ /* allocate resources for the external SM module */
sc_log(ctx, "'module_init' handler %p", card->sm_ctx.module.ops.module_init); sc_log(ctx, "'module_init' handler %p", card->sm_ctx.module.ops.module_init);

View File

@ -25,6 +25,7 @@
#include "internal.h" #include "internal.h"
#include "asn1.h" #include "asn1.h"
#include "cardctl.h" #include "cardctl.h"
#include "common/compat_strlcpy.h"
#include "sm.h" #include "sm.h"
#include "iasecc.h" #include "iasecc.h"
@ -156,7 +157,7 @@ iasecc_sm_external_authentication(struct sc_card *card, unsigned skey_ref, int *
if (card->sm_ctx.sm_mode == SM_MODE_NONE) if (card->sm_ctx.sm_mode == SM_MODE_NONE)
LOG_TEST_RET(ctx, SC_ERROR_NOT_SUPPORTED, "Cannot do 'External Authentication' without SM activated "); LOG_TEST_RET(ctx, SC_ERROR_NOT_SUPPORTED, "Cannot do 'External Authentication' without SM activated ");
strncpy(sm_info->config_section, card->sm_ctx.config_section, sizeof(sm_info->config_section)); strlcpy(sm_info->config_section, card->sm_ctx.config_section, sizeof(sm_info->config_section));
sm_info->cmd = SM_CMD_EXTERNAL_AUTH; sm_info->cmd = SM_CMD_EXTERNAL_AUTH;
sm_info->serialnr = card->serialnr; sm_info->serialnr = card->serialnr;
sm_info->card_type = card->type; sm_info->card_type = card->type;
@ -296,7 +297,7 @@ iasecc_sm_initialize(struct sc_card *card, unsigned se_num, unsigned cmd)
LOG_FUNC_CALLED(ctx); LOG_FUNC_CALLED(ctx);
strncpy(sm_info->config_section, card->sm_ctx.config_section, sizeof(sm_info->config_section)); strlcpy(sm_info->config_section, card->sm_ctx.config_section, sizeof(sm_info->config_section));
sm_info->cmd = cmd; sm_info->cmd = cmd;
sm_info->serialnr = card->serialnr; sm_info->serialnr = card->serialnr;
sm_info->card_type = card->type; sm_info->card_type = card->type;