From c5d0e58d0de4556a724d20cce0603593403c4554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de> Date: Fri, 21 Feb 2020 14:55:03 +0100 Subject: [PATCH] * src/ftp-ls.c (eat_carets): Fix caret decoding issue (Coverity #1419653) --- src/ftp-ls.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ftp-ls.c b/src/ftp-ls.c index cf0a7ee0..bb257542 100644 --- a/src/ftp-ls.c +++ b/src/ftp-ls.c @@ -611,27 +611,27 @@ static void eat_carets( char *str) if (uchr == '^') { /* Found a caret. Skip it, and check the next character. */ - if ((char_prop[(unsigned char) str[0]] & 64) && (char_prop[(unsigned char) str[1]] & 64)) + if ((char_prop[(unsigned char) str[1]] & 64) && (char_prop[(unsigned char) str[2]] & 64)) { /* Hex digit. Get char code from this and next hex digit. */ uchr = *(++str); if (uchr <= '9') { - hdgt = uchr- '0'; /* '0' - '9' -> 0 - 9. */ + hdgt = uchr - '0'; /* '0' - '9' -> 0 - 9. */ } else { - hdgt = ((uchr- 'A')& 7)+ 10; /* [Aa] - [Ff] -> 10 - 15. */ + hdgt = ((uchr - 'A') & 7) + 10; /* [Aa] - [Ff] -> 10 - 15. */ } hdgt <<= 4; /* X16. */ uchr = *(++str); /* Next char must be hex digit. */ if (uchr <= '9') { - uchr = hdgt+ uchr- '0'; + uchr = hdgt + uchr - '0'; } else { - uchr = hdgt+ ((uchr- 'A')& 15)+ 10; + uchr = hdgt + ((uchr - 'A') & 15) + 10; } } else if (uchr == '_')