Project Name | CID | Checker | Category | Developer Description |
---|---|---|---|---|
TeskaLabs/Frame_Transporter | 1354182 | MISSING_BREAK | Control flow issues | This one is pretty awesome. It is a corner case that would flash once in the blue moon - but with serious impact on the production availability. This one alone justified all the effort put into coverity integration. |
1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 |
int rc = shutdown(this->write_watcher.fd, SHUT_RDWR); if ((rc != 0) && ( errno != ENOTCONN)) FT_WARN_ERRNO_P(errno, "shutdown()"); FT_TRACE(FT_TRACE_ID_STREAM, "END " TRACE_FMT " completed", TRACE_ARGS); return; } int errno_ssl_cmd = errno; int ssl_err = SSL_get_error(this->ssl, rc); switch (ssl_err) { case SSL_ERROR_WANT_READ: _ft_stream_read_set_event(this, SSL_SHUTDOWN_WANT_READ); _ft_stream_write_unset_event(this, SSL_SHUTDOWN_WANT_WRITE); FT_TRACE(FT_TRACE_ID_STREAM, "END " TRACE_FMT " SSL_SHUTDOWN_WANT_READ", TRACE_ARGS); return; case SSL_ERROR_WANT_WRITE: _ft_stream_read_unset_event(this, SSL_SHUTDOWN_WANT_READ); _ft_stream_write_set_event(this, SSL_SHUTDOWN_WANT_WRITE); FT_TRACE(FT_TRACE_ID_STREAM, "END " TRACE_FMT " SSL_SHUTDOWN_WANT_WRITE", TRACE_ARGS); return; |
<<< CID 1354182: Control flow issues MISSING_BREAK <<< The case for value "1" is not terminated by a 'break' statement.
1240 1241 1242 1243 1244 1245 1246 1247 |
case SSL_ERROR_SSL: { unsigned long ssl_err_tmp = ERR_peek_error(); FT_ERROR_OPENSSL_P("Unexpected error %d during SSL shutdown, closing", ssl_err); assert(errno_ssl_cmd == 0); _ft_stream_error(this, 0, ssl_err_tmp, "SSL shutdown (unknown)"); } FT_TRACE(FT_TRACE_ID_STREAM, "END " TRACE_FMT " unknown", TRACE_ARGS); |
<< The above case falls through to this one.
1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 |
case SSL_ERROR_ZERO_RETURN: case SSL_ERROR_SYSCALL: default: // What to do here ... FT_ERROR_P("Unexpected error %d during SSL shutdown, closing", ssl_err); _ft_stream_error(this, errno_ssl_cmd == 0 ? ECONNRESET : errno_ssl_cmd, 0UL, "SSL shutdown (unknown)"); FT_TRACE(FT_TRACE_ID_STREAM, "END " TRACE_FMT " unknown", TRACE_ARGS); return; } } /// static void _ft_stream_on_read(struct ev_loop * loop, struct ev_io * watcher, int revents) { struct ft_stream * this = watcher->data; assert(this != NULL); FT_TRACE(FT_TRACE_ID_STREAM, "BEGIN " TRACE_FMT " e:%x ei:%u", TRACE_ARGS, revents, ev_iteration(loop)); if ((revents & EV_ERROR) != 0) { _ft_stream_error(this, ECONNRESET, 0UL, "reading (libev)"); goto end; } |
fallthrough | stream.c:1249 | |
unterminated_case | stream.c:1240 |