From 7c314fd9f8e383c36b700ac231645efe1dfcd1eb Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Thu, 31 Mar 2016 21:05:29 -0400 Subject: [PATCH] strerror: don't bit shift a signed integer Bug: https://github.com/curl/curl/issues/744 Reported-by: Alexis La Goutte --- lib/strerror.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/strerror.c b/lib/strerror.c index d222a1fc0..cf1a04781 100644 --- a/lib/strerror.c +++ b/lib/strerror.c @@ -1076,14 +1076,13 @@ const char *Curl_sspi_strerror (struct connectdata *conn, int err) strncpy(outbuf, txt, outmax); else if(err == SEC_E_ILLEGAL_MESSAGE) snprintf(outbuf, outmax, - "SEC_E_ILLEGAL_MESSAGE (0x%04X%04X) - This error usually occurs " + "SEC_E_ILLEGAL_MESSAGE (0x%08X) - This error usually occurs " "when a fatal SSL/TLS alert is received (e.g. handshake failed). " "More detail may be available in the Windows System event log.", - (err >> 16) & 0xffff, err & 0xffff); + err); else { str = txtbuf; - snprintf(txtbuf, sizeof(txtbuf), "%s (0x%04X%04X)", - txt, (err >> 16) & 0xffff, err & 0xffff); + snprintf(txtbuf, sizeof(txtbuf), "%s (0x%08X)", txt, err); txtbuf[sizeof(txtbuf)-1] = '\0'; #ifdef _WIN32_WCE