|
|
d133c5 |
diff --git a/cmd/modutil/install.c b/cmd/modutil/install.c
|
|
|
d133c5 |
--- a/cmd/modutil/install.c
|
|
|
d133c5 |
+++ b/cmd/modutil/install.c
|
|
|
d133c5 |
@@ -825,17 +825,20 @@ rm_dash_r(char *path)
|
|
|
d133c5 |
|
|
|
d133c5 |
dir = PR_OpenDir(path);
|
|
|
d133c5 |
if (!dir) {
|
|
|
d133c5 |
return -1;
|
|
|
d133c5 |
}
|
|
|
d133c5 |
|
|
|
d133c5 |
/* Recursively delete all entries in the directory */
|
|
|
d133c5 |
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) {
|
|
|
d133c5 |
- sprintf(filename, "%s/%s", path, entry->name);
|
|
|
d133c5 |
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name) >= sizeof(filename)) {
|
|
|
d133c5 |
+ PR_CloseDir(dir);
|
|
|
d133c5 |
+ return -1;
|
|
|
d133c5 |
+ }
|
|
|
d133c5 |
if (rm_dash_r(filename)) {
|
|
|
d133c5 |
PR_CloseDir(dir);
|
|
|
d133c5 |
return -1;
|
|
|
d133c5 |
}
|
|
|
d133c5 |
}
|
|
|
d133c5 |
|
|
|
d133c5 |
if (PR_CloseDir(dir) != PR_SUCCESS) {
|
|
|
d133c5 |
return -1;
|
|
|
d133c5 |
diff --git a/cmd/signtool/util.c b/cmd/signtool/util.c
|
|
|
d133c5 |
--- a/cmd/signtool/util.c
|
|
|
d133c5 |
+++ b/cmd/signtool/util.c
|
|
|
d133c5 |
@@ -138,6 +138,12 @@ rm_dash_r(char *path)
|
|
|
d133c5 |
/* Recursively delete all entries in the directory */
|
|
|
d133c5 |
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) {
|
|
|
d133c5 |
sprintf(filename, "%s/%s", path, entry->name);
|
|
|
d133c5 |
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name
|
|
|
d133c5 |
+) >= sizeof(filename)) {
|
|
|
d133c5 |
+ errorCount++;
|
|
|
d133c5 |
+ PR_CloseDir(dir);
|
|
|
d133c5 |
+ return -1;
|
|
|
d133c5 |
+ }
|
|
|
d133c5 |
if (rm_dash_r(filename)) {
|
|
|
d133c5 |
PR_CloseDir(dir);
|
|
|
d133c5 |
return -1;
|
|
|
d133c5 |
diff --git a/lib/libpkix/pkix/util/pkix_list.c b/lib/libpkix/pkix/util/pkix_list.c
|
|
|
d133c5 |
--- a/lib/libpkix/pkix/util/pkix_list.c
|
|
|
d133c5 |
+++ b/lib/libpkix/pkix/util/pkix_list.c
|
|
|
d133c5 |
@@ -1530,17 +1530,17 @@ cleanup:
|
|
|
d133c5 |
*/
|
|
|
d133c5 |
PKIX_Error *
|
|
|
d133c5 |
PKIX_List_SetItem(
|
|
|
d133c5 |
PKIX_List *list,
|
|
|
d133c5 |
PKIX_UInt32 index,
|
|
|
d133c5 |
PKIX_PL_Object *item,
|
|
|
d133c5 |
void *plContext)
|
|
|
d133c5 |
{
|
|
|
d133c5 |
- PKIX_List *element;
|
|
|
d133c5 |
+ PKIX_List *element = NULL;
|
|
|
d133c5 |
|
|
|
d133c5 |
PKIX_ENTER(LIST, "PKIX_List_SetItem");
|
|
|
d133c5 |
PKIX_NULLCHECK_ONE(list);
|
|
|
d133c5 |
|
|
|
d133c5 |
if (list->immutable){
|
|
|
d133c5 |
PKIX_ERROR(PKIX_OPERATIONNOTPERMITTEDONIMMUTABLELIST);
|
|
|
d133c5 |
}
|
|
|
d133c5 |
|
|
|
d133c5 |
diff --git a/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c b/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
|
|
|
d133c5 |
--- a/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
|
|
|
d133c5 |
+++ b/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
|
|
|
d133c5 |
@@ -102,17 +102,17 @@ cleanup:
|
|
|
d133c5 |
*/
|
|
|
d133c5 |
static PKIX_Error *
|
|
|
d133c5 |
pkix_pl_OID_Equals(
|
|
|
d133c5 |
PKIX_PL_Object *first,
|
|
|
d133c5 |
PKIX_PL_Object *second,
|
|
|
d133c5 |
PKIX_Boolean *pResult,
|
|
|
d133c5 |
void *plContext)
|
|
|
d133c5 |
{
|
|
|
d133c5 |
- PKIX_Int32 cmpResult;
|
|
|
d133c5 |
+ PKIX_Int32 cmpResult = 0;
|
|
|
d133c5 |
|
|
|
d133c5 |
PKIX_ENTER(OID, "pkix_pl_OID_Equals");
|
|
|
d133c5 |
PKIX_NULLCHECK_THREE(first, second, pResult);
|
|
|
d133c5 |
|
|
|
d133c5 |
PKIX_CHECK(pkix_pl_OID_Comparator
|
|
|
d133c5 |
(first, second, &cmpResult, plContext),
|
|
|
d133c5 |
PKIX_OIDCOMPARATORFAILED);
|
|
|
d133c5 |
|