You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.8 KiB
85 lines
2.8 KiB
diff --git a/cmd/modutil/install.c b/cmd/modutil/install.c |
|
--- a/cmd/modutil/install.c |
|
+++ b/cmd/modutil/install.c |
|
@@ -825,17 +825,20 @@ rm_dash_r(char *path) |
|
|
|
dir = PR_OpenDir(path); |
|
if (!dir) { |
|
return -1; |
|
} |
|
|
|
/* Recursively delete all entries in the directory */ |
|
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) { |
|
- sprintf(filename, "%s/%s", path, entry->name); |
|
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name) >= sizeof(filename)) { |
|
+ PR_CloseDir(dir); |
|
+ return -1; |
|
+ } |
|
if (rm_dash_r(filename)) { |
|
PR_CloseDir(dir); |
|
return -1; |
|
} |
|
} |
|
|
|
if (PR_CloseDir(dir) != PR_SUCCESS) { |
|
return -1; |
|
diff --git a/cmd/signtool/util.c b/cmd/signtool/util.c |
|
--- a/cmd/signtool/util.c |
|
+++ b/cmd/signtool/util.c |
|
@@ -138,6 +138,12 @@ rm_dash_r(char *path) |
|
/* Recursively delete all entries in the directory */ |
|
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) { |
|
sprintf(filename, "%s/%s", path, entry->name); |
|
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name |
|
+) >= sizeof(filename)) { |
|
+ errorCount++; |
|
+ PR_CloseDir(dir); |
|
+ return -1; |
|
+ } |
|
if (rm_dash_r(filename)) { |
|
PR_CloseDir(dir); |
|
return -1; |
|
diff --git a/lib/libpkix/pkix/util/pkix_list.c b/lib/libpkix/pkix/util/pkix_list.c |
|
--- a/lib/libpkix/pkix/util/pkix_list.c |
|
+++ b/lib/libpkix/pkix/util/pkix_list.c |
|
@@ -1530,17 +1530,17 @@ cleanup: |
|
*/ |
|
PKIX_Error * |
|
PKIX_List_SetItem( |
|
PKIX_List *list, |
|
PKIX_UInt32 index, |
|
PKIX_PL_Object *item, |
|
void *plContext) |
|
{ |
|
- PKIX_List *element; |
|
+ PKIX_List *element = NULL; |
|
|
|
PKIX_ENTER(LIST, "PKIX_List_SetItem"); |
|
PKIX_NULLCHECK_ONE(list); |
|
|
|
if (list->immutable){ |
|
PKIX_ERROR(PKIX_OPERATIONNOTPERMITTEDONIMMUTABLELIST); |
|
} |
|
|
|
diff --git a/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c b/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c |
|
--- a/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c |
|
+++ b/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c |
|
@@ -102,17 +102,17 @@ cleanup: |
|
*/ |
|
static PKIX_Error * |
|
pkix_pl_OID_Equals( |
|
PKIX_PL_Object *first, |
|
PKIX_PL_Object *second, |
|
PKIX_Boolean *pResult, |
|
void *plContext) |
|
{ |
|
- PKIX_Int32 cmpResult; |
|
+ PKIX_Int32 cmpResult = 0; |
|
|
|
PKIX_ENTER(OID, "pkix_pl_OID_Equals"); |
|
PKIX_NULLCHECK_THREE(first, second, pResult); |
|
|
|
PKIX_CHECK(pkix_pl_OID_Comparator |
|
(first, second, &cmpResult, plContext), |
|
PKIX_OIDCOMPARATORFAILED); |
|
|
|
|