|
@@ -783,6 +783,16 @@ void ldom_set_var(const char *var, const char *value)
|
|
|
char *base, *p;
|
|
|
int msg_len, loops;
|
|
|
|
|
|
+ if (strlen(var) + strlen(value) + 2 >
|
|
|
+ sizeof(pkt) - sizeof(pkt.header)) {
|
|
|
+ printk(KERN_ERR PFX
|
|
|
+ "contents length: %zu, which more than max: %lu,"
|
|
|
+ "so could not set (%s) variable to (%s).\n",
|
|
|
+ strlen(var) + strlen(value) + 2,
|
|
|
+ sizeof(pkt) - sizeof(pkt.header), var, value);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
memset(&pkt, 0, sizeof(pkt));
|
|
|
pkt.header.data.tag.type = DS_DATA;
|
|
|
pkt.header.data.handle = cp->handle;
|