jcs
/subtext
/amendments
/612
folder: Avoid leak in failure, fix handling 'Y' response
jcs made amendment 612 10 months ago
--- folder.c Tue Jan 23 16:26:32 2024
+++ folder.c Sat Dec 6 21:43:56 2025
@@ -668,6 +668,7 @@ folder_file_view(struct session *s, struct folder *fol
if (s->can_nomodem) {
ns = nomodem_send(s, fp, file.filename);
if (ns == NULL) {
+ fclose(fp);
xfree(&path);
done = true;
break;
@@ -675,6 +676,7 @@ folder_file_view(struct session *s, struct folder *fol
} else {
zs = ZCreateSender(s, fp, file.filename);
if (zs == NULL) {
+ fclose(fp);
xfree(&path);
done = true;
break;
@@ -763,7 +765,7 @@ timed_out:
session_flush(s);
cc = session_input_char(s);
- if (cc == 'y' || c == 'Y') {
+ if (cc == 'y' || cc == 'Y') {
session_printf(s, "%c\r\n", cc);
session_flush(s);
@@ -861,7 +863,6 @@ folder_find_file_ids(struct folder *folder, size_t *nf
xfree(&name_map);
-done:
return *nfile_ids;
}
@@ -1015,7 +1016,7 @@ folder_file_valid_filename(struct session *session,
}
ret = bile_read_alloc(folder->bile, FOLDER_FILE_RTYPE, o->id, &data);
- if (ret == 0) {
+ if (ret == 0 || data == NULL) {
xfree(&o);
return false;
}