Caught by cppcheck static analysis.
* select() loop. --SLF
*/
static void
-
diskCombineWrites(struct _fde_disk *fdd)
{
- int len = 0;
- dwrite_q *q = NULL;
- dwrite_q *wq = NULL;
/*
* We need to combine multiple write requests on an FD's write
* queue But only if we don't need to seek() in between them, ugh!
*/
if (fdd->write_q != NULL && fdd->write_q->next != NULL) {
- len = 0;
+ int len = 0;
- for (q = fdd->write_q; q != NULL; q = q->next)
+ for (dwrite_q *q = fdd->write_q; q != NULL; q = q->next)
len += q->len - q->buf_offset;
- wq = (dwrite_q *)memAllocate(MEM_DWRITE_Q);
+ dwrite_q *wq = (dwrite_q *)memAllocate(MEM_DWRITE_Q);
wq->buf = (char *)xmalloc(len);
wq->free_func = cxx_xfree;
- do {
- q = fdd->write_q;
+ while (fdd->write_q != NULL) {
+ dwrite_q *q = fdd->write_q;
+
len = q->len - q->buf_offset;
xmemcpy(wq->buf + wq->len, q->buf + q->buf_offset, len);
wq->len += len;
if (q->free_func)
(q->free_func) (q->buf);
- if (q) {
- memFree(q, MEM_DWRITE_Q);
- q = NULL;
- }
- } while (fdd->write_q != NULL);
+ memFree(q, MEM_DWRITE_Q);
+ };
fdd->write_q_tail = wq;
bool readPending(int);
void noteUse(PconnPool *);
+public:
unsigned int type;
u_short remote_port;
char ipaddr[MAX_IPSTRLEN]; /* dotted decimal address of peer */
char desc[FD_DESC_SZ];
- struct {
+ struct _fde_flags {
unsigned int open:1;
unsigned int close_request:1; // file_ or comm_close has been called
unsigned int write_daemon:1;
private:
/** Clear the fde class back to NULL equivalent. */
inline void clear() {
+ type = 0;
+ remote_port = 0;
+ local_addr.SetEmpty();
+ tos = '\0';
+ sock_family = 0;
+ memset(ipaddr, '\0', MAX_IPSTRLEN);
+ memset(desc,'\0',FD_DESC_SZ);
+ memset(flags,0,sizeof(_fde_flags));
+ bytes_read = 0;
+ bytes_written = 0;
+ pconn.uses = 0;
+ pconn.pool = NULL;
+ epoll_state = 0;
+ memset(disk, 0, sizeof(_fde_disk));
+ read_handler = NULL;
+ read_data = NULL;
+ write_handler = NULL;
+ write_data = NULL;
timeoutHandler = NULL;
+ timeout = 0;
+ writeStart = 0;
+ lifetime_data = NULL;
closeHandler = NULL;
halfClosedReader = NULL;
- // XXX: the following memset may corrupt or leak new or changed members
- memset(this, 0, sizeof(fde));
- local_addr.SetEmpty(); // Ip::Address likes to be setup nicely.
+ wstate = NULL;
+ read_method = NULL;
+ write_method = NULL;
+#if USE_SSL
+ ssl = NULL;
+#endif
+#ifdef _SQUID_MSWIN_
+ win32.handle = NULL;
+#endif
+#if USE_ZPH_QOS
+ upstreamTOS = 0;
+#endif
}
-
};
SQUIDCEXTERN int fdNFree(void);
} else if (ctrl.replycode == 421) {
err = errorCon(ERR_FTP_UNAVAILABLE, HTTP_SERVICE_UNAVAILABLE, fwd->request);
}
- } else {
+ }
+
+ if (err) {
ftpFail(this);
return;
}
icpUdpSendQueue(int fd, void *unused)
{
icpUdpData *q;
- int x;
- int delay;
while ((q = IcpQueueHead) != NULL) {
- delay = tvSubUsec(q->queue_time, current_time);
+ int delay = tvSubUsec(q->queue_time, current_time);
/* increment delay to prevent looping */
- x = icpUdpSend(fd, q->address, (icp_common_t *) q->msg, q->logcode, ++delay);
+ const int x = icpUdpSend(fd, q->address, (icp_common_t *) q->msg, q->logcode, ++delay);
IcpQueueHead = q->next;
- safe_free(q);
+ xfree(q);
if (x < 0)
break;
{
peer *p = (peer *)data;
- struct _domain_ping *l = NULL;
-
- struct _domain_ping *nl = NULL;
-
if (p == NULL)
return;
- for (l = p->peer_domain; l; l = nl) {
+ struct _domain_ping *nl = NULL;
+
+ for (struct _domain_ping *l = p->peer_domain; l; l = nl) {
nl = l->next;
safe_free(l->domain);
- safe_free(l);
+ xfree(l);
}
safe_free(p->host);