Add WIDGET_NAME_SCREEN; Fix null deref in WIDGET_NAME_SSID

This commit is contained in:
Pim van Pelt
2017-11-26 17:31:24 +01:00
parent ddb026217a
commit 82c9999138

View File

@ -8,9 +8,11 @@
#define WIDGET_NAME_NAME 0 #define WIDGET_NAME_NAME 0
#define WIDGET_NAME_IPADDR 1 #define WIDGET_NAME_IPADDR 1
#define WIDGET_NAME_SSID 2 #define WIDGET_NAME_SSID 2
#define WIDGET_NAME_EMPTY 3 #define WIDGET_NAME_SCREEN 3
#define WIDGET_NAME_EMPTY 4
static uint8_t what = WIDGET_NAME_NAME; static uint8_t what = WIDGET_NAME_NAME;
extern struct screen_t *screen;
static void widget_name_render(struct widget_t *w, void *ev_data) { static void widget_name_render(struct widget_t *w, void *ev_data) {
char namestring[21]; char namestring[21];
@ -37,11 +39,17 @@ static void widget_name_render(struct widget_t *w, void *ev_data) {
} }
case WIDGET_NAME_SSID: case WIDGET_NAME_SSID:
p = mgos_wifi_get_connected_ssid(); p = mgos_wifi_get_connected_ssid();
sprintf(namestring, "%-20s", p); sprintf(namestring, "%-20s", p?p:"(no SSID)");
free(p); free(p);
break; break;
case WIDGET_NAME_SCREEN:
if (screen)
sprintf(namestring, "%-20s", screen->name);
else
sprintf(namestring, "%-20s", "(no Screen)");
break;
case WIDGET_NAME_EMPTY: case WIDGET_NAME_EMPTY:
sprintf(namestring, "%-20s", ""); sprintf(namestring, "%-20s", "");
break; break;
default: default:
sprintf(namestring, "%-20s",mgos_sys_config_get_app_hostname()); sprintf(namestring, "%-20s",mgos_sys_config_get_app_hostname());