jcs
/subtext
/amendments
/611
focusable: Check xreallocarray result
jcs made amendment 611 9 months ago
--- focusable.c Sat Dec 6 21:18:09 2025
+++ focusable.c Sat Dec 6 21:47:17 2025
@@ -100,9 +100,11 @@ destroy_focusable(struct focusable **focusablep)
}
nfocusables--;
- if (nfocusables)
+ if (nfocusables) {
focusables = xreallocarray(focusables, sizeof(Ptr), nfocusables);
- else {
+ if (focusables == NULL)
+ panic("Out of memory");
+ } else {
xfree(&focusables);
focusables = NULL;
}
@@ -125,8 +127,8 @@ hide_focusable(struct focusable *focusable)
if (focusables[n] == focusable) {
for (; n < nfocusables - 1; n++)
focusables[n] = focusables[n + 1];
+ focusables[nfocusables - 1] = focusable;
break;
}
}
- focusables[nfocusables - 1] = focusable;
}