Ftp::DataChannel::~DataChannel()
{
+ xfree(host);
delete readBuf;
}
if (complete) {
// use list->key for last_reply because s contains the new line
+ safe_free(ctrl.last_reply);
ctrl.last_reply = xstrdup(list->key + 4);
ctrl.replycode = atoi(list->key);
}
switch (*ct) {
case '\t':
+ safe_free(p->name); // TODO: properly handle multiple p->name occurrences
p->name = xstrndup(ct + 1, l + 1);
break;
if (tmp != ct + 1)
break; /* not a valid integer */
+ safe_free(p->date); // TODO: properly handle multiple p->name occurrences
p->date = xstrdup(ctime(&tm));
*(strstr(p->date, "\n")) = '\0';
entry->lock("Ftp::Gateway");
ErrorState ferr(ERR_DIR_LISTING, Http::scOkay, request.getRaw(), fwd->al);
ferr.ftp.listing = &listing;
+ safe_free(ferr.ftp.cwd_msg);
ferr.ftp.cwd_msg = xstrdup(cwd_message.size()? cwd_message.termedBuf() : "");
ferr.ftp.server_msg = ctrl.message;
ctrl.message = nullptr;
wordlistDestroy(&ftp.server_msg);
safe_free(ftp.request);
safe_free(ftp.reply);
+ safe_free(ftp.cwd_msg);
safe_free(err_msg);
#if USE_ERR_LOCALES
if (err_language != Config.errorDefaultLanguage)