@@ -82,15 +82,13 @@ static int lms_write_key(const byte * priv, word32 privSz, void * context)
8282 if (n_read != n_write ) {
8383 fprintf (stderr , "error: read %d, expected %d: %d\n" ,
8484 (int )n_read , (int )n_write , ferror (file ));
85- wc_ForceZero (buff , sizeof (buff ));
86- return WC_LMS_RC_WRITE_FAIL ;
85+ goto verify_fail ;
8786 }
8887
8988 n_cmp = XMEMCMP (buff , priv , n_write );
9089 if (n_cmp != 0 ) {
9190 fprintf (stderr , "error: write data was corrupted: %d\n" , n_cmp );
92- wc_ForceZero (buff , sizeof (buff ));
93- return WC_LMS_RC_WRITE_FAIL ;
91+ goto verify_fail ;
9492 }
9593
9694 err = fclose (file );
@@ -102,6 +100,14 @@ static int lms_write_key(const byte * priv, word32 privSz, void * context)
102100
103101 wc_ForceZero (buff , sizeof (buff ));
104102 return WC_LMS_RC_SAVED_TO_NV_MEMORY ;
103+
104+ verify_fail :
105+ wc_ForceZero (buff , sizeof (buff ));
106+ err = fclose (file );
107+ if (err ) {
108+ fprintf (stderr , "error: fclose returned %d\n" , err );
109+ }
110+ return WC_LMS_RC_WRITE_FAIL ;
105111}
106112
107113static int lms_read_key (byte * priv , word32 privSz , void * context )
0 commit comments