Text  |   XML   |   Visible Warnings:

Irssi : Irssi analysis 1 : Unreachable Data Flow  at network-openssl.c:136

Categories: LANG.STRUCT.UC CWE:561
Warning ID: 2127.2128
Procedure: irssi_ssl_read
Trace: View
Modified: Wed Sep 2 11:51:24 2009   show details
 
Priority: None
State: None
Finding: None
Owner: None
  edit properties

Legend [ X ]
Warning Location
Contributes
Parse Error
Other Warning
Two or More Loop Iterations
On Execution Path
Comment
Macro
Preprocessor
Include
Keyword
Preprocessed Away

Source  |  Language: C Hide Legend     
LineSource
  /u1/paul/SATE/2010/c/irssi/irssi-0.8.14/src/core/network-openssl.c
  Enter irssi_ssl_read
96 static GIOStatus irssi_ssl_read(GIOChannel *handle, gchar *buf, gsize len, gsize *ret, GError **gerr) 
97 {
98         GIOSSLChannel *chan = (GIOSSLChannel *)handle;
99         gint ret1, err;
100         const char *errstr;
101  
102         ret1 = SSL_read(chan->ssl, buf, len);
103         if(ret1 <= 0)
104         {
105                 *ret = 0;
106                 err = SSL_get_error(chan->ssl, ret1);
107                 if(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
108                         return G_IO_STATUS_AGAIN;
109                 else if(err == SSL_ERROR_ZERO_RETURN)
110                         return G_IO_STATUS_EOF;
111                 else if (err == SSL_ERROR_SYSCALL)
112                 {
113                         errstr = ERR_reason_error_string(ERR_get_error());
114                         if (errstr == NULL && ret1 == -1)
115                                 errstr = strerror(errno);
116                         if (errstr == NULL)
117                                 errstr = "server closed connection unexpectedly";
118                 }
119                 else 
120                 {
121                         errstr = ERR_reason_error_string(ERR_get_error());
122                         if (errstr == NULL)
123                                 errstr = "unknown SSL error";
124                 }
125                 g_warning("SSL read error: %s", errstr);
126                 *gerr = g_error_new_literal(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED,
127                                             errstr);
128                 return G_IO_STATUS_ERROR;
129         }
130         else 
131         {
132                 *ret = ret1;
133                 return G_IO_STATUS_NORMAL;
134         }
135         /*UNREACH*/ 
136         return G_IO_STATUS_ERROR;     /* Unreachable Data Flow */
137 




Change Warning 2127.2128 : Unreachable Data Flow

Priority:
State:
Finding:
Owner:
Note: