adb: win32: fix key files reading/writing
The issue is that adb uses fopen() with "e" (presumably to open the file with O_CLOEXEC), but that flag causes MSVCRT.DLL to return an error. So when adb_auth_host.cpp goes to read or write the adbkey files, it fails. The quick fix is to not use the "e" option on adb host code since it isn't necessary there, compared to adbd. An alternative fix would be to have a fopen() wrapper on Windows that filters out the "e" option. Change-Id: I7d8ba2847dab0ed558ffe156e79093251eb253c9 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
This commit is contained in:
parent
0c537ce3c0
commit
9b9603148b
1 changed files with 3 additions and 3 deletions
|
|
@ -178,7 +178,7 @@ static int write_public_keyfile(RSA *private_key, const char *private_key_path)
|
|||
return 0;
|
||||
}
|
||||
|
||||
outfile = fopen(path, "we");
|
||||
outfile = fopen(path, "w");
|
||||
if (!outfile) {
|
||||
D("Failed to open '%s'\n", path);
|
||||
return 0;
|
||||
|
|
@ -244,7 +244,7 @@ static int generate_key(const char *file)
|
|||
|
||||
old_mask = umask(077);
|
||||
|
||||
f = fopen(file, "we");
|
||||
f = fopen(file, "w");
|
||||
if (!f) {
|
||||
D("Failed to open '%s'\n", file);
|
||||
umask(old_mask);
|
||||
|
|
@ -278,7 +278,7 @@ static int read_key(const char *file, struct listnode *list)
|
|||
{
|
||||
D("read_key '%s'\n", file);
|
||||
|
||||
FILE* fp = fopen(file, "re");
|
||||
FILE* fp = fopen(file, "r");
|
||||
if (!fp) {
|
||||
D("Failed to open '%s': %s\n", file, strerror(errno));
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue