char *local;
                if (*((char *) s->avl.key) != '_')
                        continue;
-               snprintf(buffer, MAX_NAME_LEN, s->avl.key);
+               snprintf(buffer, MAX_NAME_LEN, "%s", (const char *) s->avl.key);
                local = strstr(buffer, ".local");
                if (local)
                        *local = '\0';
                if (!c1) {
                        c1 = blobmsg_open_table(&b, buffer);
                }
-               snprintf(buffer, MAX_NAME_LEN, s->entry);
+               snprintf(buffer, MAX_NAME_LEN, "%s", (const char *) s->entry);
                local = strstr(buffer, "._");
                if (local)
                        *local = '\0';
                char *local;
                if (*((char *) s->avl.key) == '_')
                        continue;
-               snprintf(buffer, MAX_NAME_LEN, s->entry);
+               snprintf(buffer, MAX_NAME_LEN, "%s", (const char *) s->entry);
                local = strstr(buffer, "._");
                if (local)
                        *local = '\0';