]> git.neil.brown.name Git - edlib.git/commitdiff
keymap: protect against freed marks.
authorNeilBrown <neil@brown.name>
Mon, 30 Jan 2023 02:30:42 +0000 (13:30 +1100)
committerNeilBrown <neil@brown.name>
Mon, 30 Jan 2023 02:30:42 +0000 (13:30 +1100)
If a mark has been freed, don't allow any command to be called on it.
This might make it easier to find out where they get wrongly freed.

Signed-off-by: NeilBrown <neil@brown.name>
core-keymap.c

index e224e1d9b5cdb64ec6bc1d12814aebef6978b637..7556a12c900eba702fde05ce5f33f091216389e6 100644 (file)
@@ -513,6 +513,11 @@ int key_handle(const struct cmd_info *ci safe)
        struct pane *p;
        unsigned int hash[2];
 
+       if (ci->mark && !mark_valid(ci->mark))
+               return Einval;
+       if (ci->mark2 && !mark_valid(ci->mark2))
+               return Einval;
+
        if (times_up())
                return Efail;
        time_start_key(ci->key);