fixes file upload with spaces

This commit is contained in:
2026-03-18 16:52:39 +02:00
parent a91e22794e
commit 9ae0c23f71
+9 -6
View File
@@ -181,17 +181,20 @@ int32_t file_send_prepare(session *sess, char *line, server_data_t *s_d) {
int file_receive_prepare(session *sess, char *line, server_data_t *s_d) { int file_receive_prepare(session *sess, char *line, server_data_t *s_d) {
int sd = sess->sd; int sd = sess->sd;
char fname[64]; size_t fsize = 0;
size_t fsize;
int perm; int perm;
sscanf(line, "file upload \"%s %zd %d", fname, &fsize, &perm); /* TODO: */
char *name_begin = strchr(line, '"') + 1;
char *name_end = strrchr(line, '"');
int name_len = name_end - name_begin;
sscanf(name_end, "\" %zd %d", &fsize, &perm);
sess->file = malloc(sizeof(s_file_t)); sess->file = malloc(sizeof(s_file_t));
sess->file->name = malloc(sizeof(char) * strlen(fname)); sess->file->name = malloc(sizeof(char) * (name_len + 1));
sess->file->path = malloc(sizeof(STORAGE_FOLDER) + 2 + 9); sess->file->path = malloc(sizeof(STORAGE_FOLDER) + 2 + 9);
sess->file->permissions = (char)perm; sess->file->permissions = (char)perm;
sess->file->description = NULL; sess->file->description = NULL;
strncpy(sess->file->name, fname, strlen(fname) - 1); strncpy(sess->file->name, name_begin, name_len);
sess->file->name[strlen(fname) - 1] = 0; sess->file->name[name_len] = 0;
char mes[256]; char mes[256];
char mes_len = 0; char mes_len = 0;