Index: nss/mozilla/security/nss/lib/softoken/sftkpars.c |
=================================================================== |
--- nss/mozilla/security/nss/lib/softoken/sftkpars.c (revision 55475) |
+++ nss/mozilla/security/nss/lib/softoken/sftkpars.c (working copy) |
@@ -52,6 +52,8 @@ |
#define SFTK_HANDLE_STRING_ARG(param,target,value,command) \ |
if (PORT_Strncasecmp(param,value,sizeof(value)-1) == 0) { \ |
param += sizeof(value)-1; \ |
+ if (target) \ |
+ PORT_Free(target); \ |
target = sftk_argFetchValue(param,&next); \ |
param += next; \ |
command ;\ |
@@ -338,7 +340,7 @@ |
sftk_parseTokenParameters(char *param, sftk_token_parameters *parsed) |
{ |
int next; |
- char *tmp; |
+ char *tmp = NULL; |
char *index; |
index = sftk_argStrip(param); |
@@ -355,9 +357,9 @@ |
"updateTokenDescription=",;) |
SFTK_HANDLE_STRING_ARG(index,parsed->slotdes,"slotDescription=",;) |
SFTK_HANDLE_STRING_ARG(index,tmp,"minPWLen=", |
- if(tmp) { parsed->minPW=atoi(tmp); PORT_Free(tmp); }) |
+ if(tmp) { parsed->minPW=atoi(tmp); PORT_Free(tmp); tmp = NULL; }) |
SFTK_HANDLE_STRING_ARG(index,tmp,"flags=", |
- if(tmp) { sftk_parseTokenFlags(param,parsed); PORT_Free(tmp); }) |
+ if(tmp) { sftk_parseTokenFlags(param,parsed); PORT_Free(tmp); tmp = NULL; }) |
SFTK_HANDLE_FINAL_ARG(index) |
} |
return CKR_OK; |
@@ -413,7 +415,7 @@ |
sftk_parseParameters(char *param, sftk_parameters *parsed, PRBool isFIPS) |
{ |
int next; |
- char *tmp; |
+ char *tmp = NULL; |
char *index; |
char *certPrefix = NULL, *keyPrefix = NULL; |
char *tokdes = NULL, *ptokdes = NULL, *pupdtokdes = NULL; |
@@ -444,9 +446,9 @@ |
SFTK_HANDLE_STRING_ARG(index,minPW,"minPWLen=",;) |
SFTK_HANDLE_STRING_ARG(index,tmp,"flags=", |
- if(tmp) { sftk_parseFlags(param,parsed); PORT_Free(tmp); }) |
+ if(tmp) { sftk_parseFlags(param,parsed); PORT_Free(tmp); tmp = NULL; }) |
SFTK_HANDLE_STRING_ARG(index,tmp,"tokens=", |
- if(tmp) { sftk_parseTokens(tmp,parsed); PORT_Free(tmp); }) |
+ if(tmp) { sftk_parseTokens(tmp,parsed); PORT_Free(tmp); tmp = NULL; }) |
SFTK_HANDLE_FINAL_ARG(index) |
} |
if (parsed->tokens == NULL) { |