sign-file: Fix incorrect return values check
Subsystems (3)
PATCH RESEND v5 1/1 sign-file: Fix incorrect return values check
There are some wrong return values check in sign-file when call OpenSSL API. The ERR() check cond is wrong because of the program only check the return value is < 0 which ignored the return val is 0. For example:
1. CMS_final() return 1 for success or 0 for failure.
2. i2d_CMS_bio_stream() returns 1 for success or 0 for failure.
3. i2d_TYPEbio() return 1 for success and 0 for failure.
4. BIO_free() return 1 for success and 0 for failure.
---
V5: No change.
V4: Change to more strict check mode.
V3: Removed redundant empty line.
V1, V2: Clarify the description of git message.
--- scripts/sign-file.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
scripts/sign-file.c +6 -6
@@ -322,7 +322,7 @@ int main(int argc, char **argv)CMS_NOSMIMECAP | use_keyid | use_signed_attrs), "CMS_add1_signer"); -ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) <0 , +ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) !=1 ,"CMS_final" );#else
@@ -341,10 +341,10 @@ int main(int argc, char **argv) b =BIO_new_file (sig_file_name,"wb" );ERR (!b,"%s" , sig_file_name);#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) <0 , +ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) !=1 ,"%s" , sig_file_name);#else -ERR (i2d_PKCS7_bio (b, pkcs7) <0 , +ERR (i2d_PKCS7_bio (b, pkcs7) !=1 ,"%s" , sig_file_name);#endif BIO_free (b);
@@ -374,9 +374,9 @@ int main(int argc, char **argv)if (!raw_sig) {#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) <0 ,"%s" , dest_name); +ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) !=1 ,"%s" , dest_name);#else -ERR (i2d_PKCS7_bio (bd, pkcs7) <0 ,"%s" , dest_name); +ERR (i2d_PKCS7_bio (bd, pkcs7) !=1 ,"%s" , dest_name);#endif }else {BIO *b;
@@ -396,7 +396,7 @@ int main(int argc, char **argv)ERR (BIO_write (bd, &sig_info,sizeof (sig_info)) <0 ,"%s" , dest_name);ERR (BIO_write (bd, magic_number,sizeof (magic_number) -1 ) <0 ,"%s" , dest_name); -ERR (BIO_free (bd) <0 ,"%s" , dest_name); +ERR (BIO_free (bd) !=1 ,"%s" , dest_name);/* Finally, if we're signing in place, replace the original. */ if (replace_orig)
Signature · 1 line
2.34.1
Jarkko Sakkinen
maintainerQuoted 6 lines · Yusong Gao
There are some wrong return values check in sign-file when call OpenSSL API. The
ERR()check cond is wrong because of the program only check the return value is < 0 which ignored the return val is 0. For example:
1.CMS_final()return 1 for success or 0 for failure.
2.i2d_CMS_bio_stream()returns 1 for success or 0 for failure.
3.i2d_TYPEbio()return 1 for success and 0 for failure.
q
Quoted 3 lines
Fixes e5a2e3c84782 ("scripts/sign-file.c: Add support for signing with a raw signature")
Given that:
$ git describe --contains e5a2e3c84782 v4.6-rc1~127^2^2~14
Should have also:
Quoted 50 lines
Signed-off-by Yusong Gao <[email protected]>Reviewed-by Juerg Haefliger <[email protected]>---
V5: No change.
V4: Change to more strict check mode.
V3: Removed redundant empty line.
V1, V2: Clarify the description of git message.--- scripts/sign-file.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)scripts/sign-file.c +5
-5@@ -322,7 +322,7 @@ int main(int argc, char **argv)CMS_NOSMIMECAP | use_keyid | use_signed_attrs), "CMS_add1_signer"); -ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) <0 , +ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) !=1 ,"CMS_final" );#else @@ -341,10 +341,10 @@ int main(int argc, char **argv) b =BIO_new_file (sig_file_name,"wb" );ERR (!b,"%s" , sig_file_name);#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) <0 , +ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) !=1 ,"%s" , sig_file_name);#else -ERR (i2d_PKCS7_bio (b, pkcs7) <0 , +ERR (i2d_PKCS7_bio (b, pkcs7) !=1 ,"%s" , sig_file_name);#endif BIO_free (b);@@ -374,9 +374,9 @@ int main(int argc, char **argv)if (!raw_sig) {#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) <0 ,"%s" , dest_name); +ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) !=1 ,"%s" , dest_name);#else -ERR (i2d_PKCS7_bio (bd, pkcs7) <0 ,"%s" , dest_name); +ERR (i2d_PKCS7_bio (bd, pkcs7) !=1 ,"%s" , dest_name);#endif }else {BIO *b;
scripts/sign-file.c int main(int argc, char **argv) · line 402
Quoted 8 lines
scripts/sign-file.c +1
-1@@ -396,7 +396,7 @@ int main(int argc, char **argv)ERR (BIO_write (bd, &sig_info,sizeof (sig_info)) <0 ,"%s" , dest_name);ERR (BIO_write (bd, magic_number,sizeof (magic_number) -1 ) <0 ,"%s" , dest_name); -ERR (BIO_free (bd) <0 ,"%s" , dest_name); +ERR (BIO_free (bd) !=1 ,"%s" , dest_name);/* Finally, if we're signing in place, replace the original. */ if (replace_orig)
BR, Jarkko
Quoted 10 lines · Jarkko Sakkinen
Quoted 8 lines · Yusong Gao
There are some wrong return values check in sign-file when call OpenSSL
API. TheERR()check cond is wrong because of the program only check the
return value is < 0 which ignored the return val is 0. For example:
1.CMS_final()return 1 for success or 0 for failure.
2.i2d_CMS_bio_stream()returns 1 for success or 0 for failure.
3.i2d_TYPEbio()return 1 for success and 0 for failure.
Quoted 5 lines
q
Quoted 4 lines
Fixes e5a2e3c84782 ("scripts/sign-file.c: Add support for signingwith a raw signature")
Yeah, thanks for point out, I get it.
I will add it when next time I submit patches.
Quoted 73 lines
Given that:
$ git describe --contains e5a2e3c84782 v4.6-rc1~127^2^2~14Should have also:
Cc [email protected] # v4.6+Quoted 62 lines
Signed-off-by Yusong Gao <[email protected]>Reviewed-by Juerg Haefliger <[email protected]>---
V5: No change.
V4: Change to more strict check mode.
V3: Removed redundant empty line.
V1, V2: Clarify the description of git message.--- scripts/sign-file.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)scripts/sign-file.c +1
-1@@ -322,7 +322,7 @@ int main(int argc, char **argv)CMS_NOSMIMECAP | use_keyid | use_signed_attrs), "CMS_add1_signer"); -ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) < 0, +ERR (CMS_final (cms, bm,NULL ,CMS_NOCERTS |CMS_BINARY ) !=1 ,"CMS_final" );#else
scripts/sign-file.c +4
-4@@ -341,10 +341,10 @@ int main(int argc, char **argv) b =BIO_new_file (sig_file_name,"wb" );ERR (!b,"%s" , sig_file_name);#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) <0 , +ERR (i2d_CMS_bio_stream (b, cms,NULL ,0 ) !=1 ,"%s" , sig_file_name);#else -ERR (i2d_PKCS7_bio (b, pkcs7) <0 , +ERR (i2d_PKCS7_bio (b, pkcs7) !=1 ,"%s" , sig_file_name);#endif BIO_free (b);@@ -374,9 +374,9 @@ int main(int argc, char **argv)if (!raw_sig) {#ifndef USE_PKCS7 -ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) <0 ,"%s" , dest_name); +ERR (i2d_CMS_bio_stream (bd, cms,NULL ,0 ) !=1 ,"%s" , dest_name);#else -ERR (i2d_PKCS7_bio (bd, pkcs7) <0 ,"%s" , dest_name); +ERR (i2d_PKCS7_bio (bd, pkcs7) !=1 ,"%s" , dest_name);#endif } else { BIO *b;scripts/sign-file.c +1
-1@@ -396,7 +396,7 @@ int main(int argc, char **argv)ERR (BIO_write (bd, &sig_info,sizeof (sig_info)) <0 ,"%s" , dest_name);ERR (BIO_write (bd, magic_number,sizeof (magic_number) -1 ) <0 ,"%s" , dest_name); -ERR (BIO_free (bd) <0 ,"%s" , dest_name); +ERR (BIO_free (bd) !=1 ,"%s" , dest_name);
Quoted 6 lines
Quoted 3 lines
/* Finally, if we're signing in place, replace the original. */ if (replace_orig)BR, Jarkko
BR, Yusong Gao