menu.c: use puts() instead of printf() where possible
authorWolfgang Denk <wd@denx.de>
Mon, 28 Nov 2011 19:19:41 +0000 (20:19 +0100)
committerWolfgang Denk <wd@denx.de>
Mon, 28 Nov 2011 19:19:41 +0000 (20:19 +0100)
common/menu.c used printf() in a number of places to print user
provided, constant strings (like the "title" string).  printf() is
dangerous here for example in case the user unwittingly embeds some
'%' caracters that printf() would interpret as formatting and then
pick up random arguments.  Use puts() instead.

We also omit the trailing ':' in the title line - if a user wants
this, he can provide it as part of the title string.

Signed-off-by: Wolfgang Denk <wd@denx.de>
common/menu.c

index f0048233633da58649d45c96130e89eb0f76b6ff..ca1baefbbd5fcf8bc2426829065242c0d1544b52 100644 (file)
@@ -87,10 +87,12 @@ static inline void *menu_item_print(struct menu *m,
                                struct menu_item *item,
                                void *extra)
 {
-       if (!m->item_data_print)
-               printf("%s\n", item->key);
-       else
+       if (!m->item_data_print) {
+               putc(item->key);
+               putc('\n');
+       } else {
                m->item_data_print(item->data);
+       }
 
        return NULL;
 }
@@ -117,8 +119,10 @@ static inline void *menu_item_destroy(struct menu *m,
  */
 static inline void menu_display(struct menu *m)
 {
-       if (m->title)
-               printf("%s:\n", m->title);
+       if (m->title) {
+               puts(m->title);
+               putc('\n');
+       }
 
        menu_items_iter(m, menu_item_print, NULL);
 }
@@ -226,7 +230,7 @@ static inline int menu_interactive_choice(struct menu *m, void **choice)
                        if (!choice_item)
                                printf("%s not found\n", cbuf);
                } else {
-                       printf("^C\n");
+                       puts("^C\n");
                        return -EINTR;
                }
        }