return -ENOSPC;
        
        /* Create our OS partition */
-       new_part = kmalloc(sizeof(*new_part), GFP_KERNEL);
+       new_part = kzalloc(sizeof(*new_part), GFP_KERNEL);
        if (!new_part) {
                pr_err("%s: kmalloc failed\n", __func__);
                return -ENOMEM;
        new_part->index = free_part->index;
        new_part->header.signature = sig;
        new_part->header.length = size;
-       strncpy(new_part->header.name, name, 12);
+       memcpy(new_part->header.name, name, strnlen(name, sizeof(new_part->header.name)));
        new_part->header.checksum = nvram_checksum(&new_part->header);
 
        rc = nvram_write_header(new_part);
 
 
 static u64 make_field(const char *text, u64 index)
 {
-       u64 n;
+       u64 n = 0;
 
-       strncpy((char *)&n, text, 8);
+       memcpy((char *)&n, text, strnlen(text, sizeof(n)));
        return n + index;
 }