summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/rio/rio.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/src/cmd/rio/rio.c b/sys/src/cmd/rio/rio.c
index 9c8ea3f9c..87137e483 100644
--- a/sys/src/cmd/rio/rio.c
+++ b/sys/src/cmd/rio/rio.c
@@ -709,10 +709,14 @@ button3menu(void)
}
if(n >= nelem(menu3str)-Hidden)
n = nelem(menu3str)-Hidden-1;
- for(i=0; i<n; i++)
- menu3str[i+Hidden] = hidden[i]->label;
- menu3str[i+Hidden] = nil;
-
+ for(i=0; i<n; i++){
+ free(menu3str[i+Hidden]);
+ menu3str[i+Hidden] = estrdup(hidden[i]->label);
+ }
+ for(i+=Hidden; menu3str[i]; i++){
+ free(menu3str[i]);
+ menu3str[i] = nil;
+ }
sweeping = 1;
switch(i = menuhit(3, mousectl, &menu3, wscreen)){
case -1: