Commit efcae7c9 authored by Alex Yashchenko's avatar Alex Yashchenko Committed by Herbert Xu

sign-file: Fix inplace signing when src and dst names are both specified

When src and dst both are specified and they point to the same file
the sign-file utility will write only signature to the dst file and
the module (.ko file) body will not be written.
That happens because we open the same file with "rb" and "wb" flags,
from fopen man:

 w      Truncate file to zero length or create text file for writing.
The stream is positioned at the beginning of the file.
...
	bm = BIO_new_file(module_name, "rb");
...
	bd = BIO_new_file(dest_name, "wb");
...
	while ((n = BIO_read(bm, buf, sizeof(buf))),
	       n > 0) {
		ERR(BIO_write(bd, buf, n) < 0, "%s", dest_name);
	}
...
Signed-off-by: default avatarAlex Yashchenko <alexhoppus111@gmail.com>
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent fbb72630
...@@ -267,7 +267,7 @@ int main(int argc, char **argv) ...@@ -267,7 +267,7 @@ int main(int argc, char **argv)
} }
x509_name = argv[2]; x509_name = argv[2];
module_name = argv[3]; module_name = argv[3];
if (argc == 5) { if (argc == 5 && strcmp(argv[3], argv[4]) != 0) {
dest_name = argv[4]; dest_name = argv[4];
replace_orig = false; replace_orig = false;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment