aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vmime/emailAddress.cpp2
-rw-r--r--src/vmime/net/imap/IMAPParser.hpp4
-rw-r--r--src/vmime/utility/encoder/qpEncoder.cpp3
-rw-r--r--src/vmime/utility/encoder/uuEncoder.cpp14
4 files changed, 14 insertions, 9 deletions
diff --git a/src/vmime/emailAddress.cpp b/src/vmime/emailAddress.cpp
index a898e1ce..08c7a35b 100644
--- a/src/vmime/emailAddress.cpp
+++ b/src/vmime/emailAddress.cpp
@@ -218,6 +218,8 @@ void emailAddress::parseImpl
else
state = State_LocalPartStart;
+ break;
+
case State_LocalPartStart:
if (c == '"')
diff --git a/src/vmime/net/imap/IMAPParser.hpp b/src/vmime/net/imap/IMAPParser.hpp
index 8b24c9ca..bad87769 100644
--- a/src/vmime/net/imap/IMAPParser.hpp
+++ b/src/vmime/net/imap/IMAPParser.hpp
@@ -1996,6 +1996,8 @@ public:
if (name == "marked")
m_type = MARKED;
+ break;
+
case 'n':
if (name == "noinferiors")
@@ -2003,6 +2005,8 @@ public:
else if (name == "noselect")
m_type = NOSELECT;
+ break;
+
case 's':
if (name == "sent")
diff --git a/src/vmime/utility/encoder/qpEncoder.cpp b/src/vmime/utility/encoder/qpEncoder.cpp
index fe252c89..d4844ce7 100644
--- a/src/vmime/utility/encoder/qpEncoder.cpp
+++ b/src/vmime/utility/encoder/qpEncoder.cpp
@@ -508,7 +508,8 @@ size_t qpEncoder::decode(utility::inputStream& in,
break;
}
- // no break here...
+ outBuffer[outBufferPos++] = c;
+ break;
}
default:
{
diff --git a/src/vmime/utility/encoder/uuEncoder.cpp b/src/vmime/utility/encoder/uuEncoder.cpp
index 0375a397..5ee2c2b1 100644
--- a/src/vmime/utility/encoder/uuEncoder.cpp
+++ b/src/vmime/utility/encoder/uuEncoder.cpp
@@ -296,14 +296,12 @@ size_t uuEncoder::decode(utility::inputStream& in,
const size_t n = std::min(inLength - i, static_cast <size_t>(3));
- switch (n)
- {
- default:
- case 3: outBuffer[j + 2] = static_cast <byte_t>(UUDECODE(c3) << 6 | UUDECODE(c4));
- case 2: outBuffer[j + 1] = static_cast <byte_t>(UUDECODE(c2) << 4 | UUDECODE(c3) >> 2);
- case 1: outBuffer[j] = static_cast <byte_t>(UUDECODE(c1) << 2 | UUDECODE(c2) >> 4);
- case 0: break;
- }
+ if (n >= 3)
+ outBuffer[j + 2] = static_cast <byte_t>(UUDECODE(c3) << 6 | UUDECODE(c4));
+ if (n >= 2)
+ outBuffer[j + 1] = static_cast <byte_t>(UUDECODE(c2) << 4 | UUDECODE(c3) >> 2);
+ if (n >= 1)
+ outBuffer[j] = static_cast <byte_t>(UUDECODE(c1) << 2 | UUDECODE(c2) >> 4);
total += n;
}