diff -up ./src/configfile.l.coverity ./src/configfile.l
--- ./src/configfile.l.coverity 2018-05-23 16:32:54.524430167 -0700
+++ ./src/configfile.l 2018-05-23 16:37:23.881925045 -0700
@@ -191,9 +191,18 @@ int evaluatetoken(char *pcToken)
}
else
{
+ char *new_reader_list;
reader_list_size++;
- reader_list = realloc(reader_list, reader_list_size *
+ new_reader_list = realloc(reader_list, reader_list_size *
sizeof(SerialReader));
+ if (new_reader_list == NULL) {
+ free(reader_list);
+ }
+ reader_list = new_reader_list;
+ }
+ if (reader_list == NULL) {
+ tok_error("No Memory");
+ return 1;
}
/* end marker */
diff -up ./src/sd-daemon.c.coverity ./src/sd-daemon.c
--- ./src/sd-daemon.c.coverity 2018-05-23 16:28:02.571878672 -0700
+++ ./src/sd-daemon.c 2018-05-23 16:28:05.080883439 -0700
@@ -95,7 +95,7 @@ _sd_export_ int sd_listen_fds(int unset_
goto finish;
}
- if (!(e = getenv("LISTEN_FDS"))) {
+ if (!(e = secure_getenv("LISTEN_FDS"))) {
r = 0;
goto finish;
}
diff -up ./src/winscard_clnt.c.coverity ./src/winscard_clnt.c
--- ./src/winscard_clnt.c.coverity 2018-05-23 16:42:07.437434512 -0700
+++ ./src/winscard_clnt.c 2018-05-23 16:42:10.779440449 -0700
@@ -1541,15 +1541,15 @@ retry:
if (SCARD_AUTOALLOCATE == dwReaderLen)
{
dwReaderLen = *pcchReaderLen;
- bufReader = malloc(dwReaderLen);
- if (NULL == bufReader)
+ if (NULL == mszReaderName)
{
- rv = SCARD_E_NO_MEMORY;
+ rv = SCARD_E_INVALID_PARAMETER;
goto end;
}
- if (NULL == mszReaderName)
+ bufReader = malloc(dwReaderLen);
+ if (NULL == bufReader)
{
- rv = SCARD_E_INVALID_PARAMETER;
+ rv = SCARD_E_NO_MEMORY;
goto end;
}
*(char **)mszReaderName = bufReader;
@@ -1569,15 +1569,15 @@ retry:
if (SCARD_AUTOALLOCATE == dwAtrLen)
{
dwAtrLen = *pcbAtrLen;
- bufAtr = malloc(dwAtrLen);
- if (NULL == bufAtr)
+ if (NULL == pbAtr)
{
- rv = SCARD_E_NO_MEMORY;
+ rv = SCARD_E_INVALID_PARAMETER;
goto end;
}
- if (NULL == pbAtr)
+ bufAtr = malloc(dwAtrLen);
+ if (NULL == bufAtr)
{
- rv = SCARD_E_INVALID_PARAMETER;
+ rv = SCARD_E_NO_MEMORY;
goto end;
}
*(LPBYTE *)pbAtr = bufAtr;
@@ -3098,15 +3098,15 @@ LONG SCardListReaderGroups(SCARDCONTEXT
if (SCARD_AUTOALLOCATE == *pcchGroups)
{
- buf = malloc(dwGroups);
- if (NULL == buf)
+ if (NULL == mszGroups)
{
- rv = SCARD_E_NO_MEMORY;
+ rv = SCARD_E_INVALID_PARAMETER;
goto end;
}
- if (NULL == mszGroups)
+ buf = malloc(dwGroups);
+ if (NULL == buf)
{
- rv = SCARD_E_INVALID_PARAMETER;
+ rv = SCARD_E_NO_MEMORY;
goto end;
}
*(char **)mszGroups = buf;
diff -up ./src/winscard_svc.c.coverity ./src/winscard_svc.c
--- ./src/winscard_svc.c.coverity 2018-05-23 16:30:31.037160692 -0700
+++ ./src/winscard_svc.c 2018-05-23 16:30:35.066168345 -0700
@@ -856,7 +856,8 @@ static LONG MSGAddHandle(SCARDCONTEXT hC
"list_append failed with return value: %d", lrv);
retval = SCARD_E_NO_MEMORY;
}
- retval = SCARD_S_SUCCESS;
+ else
+ retval = SCARD_S_SUCCESS;
}
(void)pthread_mutex_unlock(&threadContext->cardsList_lock);