Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit d3980a79378737b1e5d93681d05f16305f3886e0 Author: Raniconduh <clagv.randomgames@gmail.com> Date: Fri Jan 07 12:31:14 2022 +0000 fix memory overlap woth sprintf() in enter_dir() attempt fix of buffer overflow in get_mime() diff --git a/src/dir.c b/src/dir.c index 19d478b..ca9b861 100644 --- a/src/dir.c +++ b/src/dir.c @@ -18911 +18915 @@ void cd_back(void) {      void enter_dir(char * name) { - cwd = realloc(cwd, strlen(cwd) + strlen(name) + 2); + char * tmp = malloc(strlen(cwd) + strlen(name) + 2); +   if (strcmp(cwd, "/")) - sprintf(cwd, "%s/%s", cwd, name); + sprintf(tmp, "%s/%s", cwd, name);   else - strcat(cwd, name); + sprintf(tmp, "%s%s", cwd, name); + + free(cwd); + cwd = tmp;   chdir(cwd);  }   diff --git a/src/type.c b/src/type.c index eef7e35..c470140 100644 --- a/src/type.c +++ b/src/type.c @@ -237 +237 @@ enum mime_type_t get_mime(char * file) {   char * t_ext = get_ext(file);   if (!t_ext) return MIME_UNKNOWN;   - char * ext = malloc(strlen(t_ext)); + char * ext = malloc(strlen(t_ext) + 1);   strcpy(ext, t_ext);   lowers(ext);