Skip to content

Commit 0d45360

Browse files
committed
fix(auth): properly extract stdout from gnubby webauthn plugin failures
1 parent eceea95 commit 0d45360

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

packages/google-auth/google/oauth2/webauthn_handler.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,21 @@ def _call_plugin(self, cmd: str, input_json: str) -> str:
5858

5959
# Call plugin
6060
process_result = subprocess.run(
61-
[cmd], input=request, capture_output=True, check=True
61+
[cmd], input=request, capture_output=True
6262
)
6363

64+
if process_result.returncode != 0:
65+
stdout_bytes = process_result.stdout[4:] if len(process_result.stdout) >= 4 else process_result.stdout
66+
67+
error_msg = "Command '{}' returned non-zero exit status {}.\nStdout: {}\nStderr: {}".format(
68+
cmd,
69+
process_result.returncode,
70+
stdout_bytes.decode(errors="replace").strip(),
71+
process_result.stderr.decode(errors="replace").strip()
72+
)
73+
74+
raise exceptions.GoogleAuthError(error_msg)
75+
6476
# Check length of response
6577
response_len_le = process_result.stdout[:4]
6678
response_len = struct.unpack("<I", response_len_le)[0]

0 commit comments

Comments
 (0)