sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit e8028be8390c3daeadf5775d2e1c21c644ff4ee4
parent 5d924f2b12055761b8b155bce61925b6384f070b
Author: Nihal Jere <nihal@nihaljere.xyz>
Date:   Fri, 18 Mar 2022 20:21:56 -0500

swaynag: improve robustness when loading config

Diffstat:
Mswaynag/config.c | 17+++++------------
1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/swaynag/config.c b/swaynag/config.c @@ -422,24 +422,17 @@ int swaynag_load_config(char *path, struct swaynag *swaynag, list_t *types) { if (line[0] == '[') { char *close = strchr(line, ']'); - if (!close) { - fprintf(stderr, "Closing bracket not found on line %d\n", - line_number); + if (!close || close != &line[nread - 2] || nread <= 3) { + fprintf(stderr, "Line %d is malformed\n", line_number); result = 1; break; } - char *name = calloc(1, close - line); - if (!name) { - perror("calloc"); - return EXIT_FAILURE; - } - strncat(name, line + 1, close - line - 1); - type = swaynag_type_get(types, name); + *close = '\0'; + type = swaynag_type_get(types, &line[1]); if (!type) { - type = swaynag_type_new(name); + type = swaynag_type_new(&line[1]); list_add(types, type); } - free(name); } else { char *flag = malloc(nread + 3); if (!flag) {