Commit 2724878b authored by antma's avatar antma

fix small memory leaks in the function do_send_photo for the cases of invalid, empty or large file

parent 06a26ebc
......@@ -1462,6 +1462,7 @@ void do_send_photo (int type, peer_id_t to_id, char *file_name) {
int fd = open (file_name, O_RDONLY);
if (fd < 0) {
rprintf ("No such file '%s'\n", file_name);
tfree_str (file_name);
return;
}
struct stat buf;
......@@ -1469,6 +1470,7 @@ void do_send_photo (int type, peer_id_t to_id, char *file_name) {
long long size = buf.st_size;
if (size <= 0) {
rprintf ("File has zero length\n");
tfree_str (file_name);
close (fd);
return;
}
......@@ -1483,6 +1485,14 @@ void do_send_photo (int type, peer_id_t to_id, char *file_name) {
f->part_size *= 2;
}
if (f->part_size > (512 << 10)) {
close (fd);
rprintf ("Too big file. Maximal supported size is %d.\n", (512 << 10) * 1000);
tfree (f, sizeof (*f));
tfree_str (file_name);
return;
}
f->id = lrand48 () * (1ll << 32) + lrand48 ();
f->to_id = to_id;
f->media_type = type;
......@@ -1496,11 +1506,6 @@ void do_send_photo (int type, peer_id_t to_id, char *file_name) {
f->key = talloc (32);
secure_random (f->key, 32);
}
if (f->part_size > (512 << 10)) {
close (fd);
rprintf ("Too big file. Maximal supported size is %d", (512 << 10) * 1000);
return;
}
if (f->media_type == CODE_input_media_uploaded_video && !f->encr) {
f->media_type = CODE_input_media_uploaded_thumb_video;
send_file_thumb (f);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment