Merge pull request #766 from frankmorgner/towards-opensc-0.16.0

Fixed memory problems
This commit is contained in:
Frank Morgner 2016-05-31 01:50:21 +02:00
commit 59152e1acf
2 changed files with 9 additions and 4 deletions

View File

@ -54,6 +54,8 @@ int _sc_delete_reader(sc_context_t *ctx, sc_reader_t *reader)
reader->ops->release(reader); reader->ops->release(reader);
if (reader->name) if (reader->name)
free(reader->name); free(reader->name);
if (reader->vendor)
free(reader->vendor);
list_delete(&ctx->readers, reader); list_delete(&ctx->readers, reader);
free(reader); free(reader);
return SC_SUCCESS; return SC_SUCCESS;

View File

@ -1080,6 +1080,7 @@ static void detect_reader_features(sc_reader_t *reader, SCARDHANDLE card_handle)
} }
if(gpriv->SCardGetAttrib != NULL) { if(gpriv->SCardGetAttrib != NULL) {
rcount = sizeof(rbuf);
if (gpriv->SCardGetAttrib(card_handle, SCARD_ATTR_VENDOR_NAME, if (gpriv->SCardGetAttrib(card_handle, SCARD_ATTR_VENDOR_NAME,
rbuf, &rcount) == SCARD_S_SUCCESS rbuf, &rcount) == SCARD_S_SUCCESS
&& rcount > 0) { && rcount > 0) {
@ -1278,6 +1279,8 @@ static int pcsc_detect_readers(sc_context_t *ctx)
if (reader != NULL) { if (reader != NULL) {
if (reader->name) if (reader->name)
free(reader->name); free(reader->name);
if (reader->vendor)
free(reader->vendor);
free(reader); free(reader);
} }
goto out; goto out;
@ -2496,14 +2499,14 @@ int cardmod_use_reader(sc_context_t *ctx, void * pcsc_context_handle, void * pcs
goto out; goto out;
err1: err1:
if (priv != NULL) if (priv != NULL) {
{
free(priv); free(priv);
} }
if (reader != NULL) if (reader != NULL) {
{
if (reader->name) if (reader->name)
free(reader->name); free(reader->name);
if (reader->vendor)
free(reader->vendor);
free(reader); free(reader);
} }
} }