struct fbi_var_data *vars;
struct fbi_step *steps_source;
struct fbi_step *steps_dest = NULL;
- uint8_t i;
+ uint8_t i, n;
int ret = 0;
memcpy(dest, source, sizeof(*source));
steps_dest = kmalloc(steps_size, GFP_KERNEL);
if (steps_dest == NULL) {
print_err("can not alloc data\n");
+ n = i;
ret = -ENOMEM;
goto err;
}
return ret;
err:
- while (--i >= 0)
+ for (i = 0; i < n; i++)
kfree(vars[i].steps);
kfree(vars);
return ret;
struct img_file *file;
file = kmalloc(sizeof(*file), GFP_KERNEL);
+ if (file == NULL) {
+ pr_err("%s: failed to allocate memory\n", __func__);
+ return NULL;
+ }
+
file->dentry = dentry;
INIT_LIST_HEAD(&file->ip_list);
INIT_LIST_HEAD(&file->list);
{
struct sspt_file *file;
struct img_file *i_file;
- struct img_ip *i_ip;
read_lock(&i_proc->rwlock);
list_for_each_entry(i_file, &i_proc->file_list, list) {
file = sspt_proc_find_file_or_new(proc, i_file->dentry);
- list_for_each_entry(i_ip, &i_file->ip_list, list)
- sspt_file_add_ip(file, i_ip->addr, i_ip->info);
+ if (file) {
+ struct img_ip *i_ip;
+
+ list_for_each_entry(i_ip, &i_file->ip_list, list)
+ sspt_file_add_ip(file, i_ip->addr, i_ip->info);
+ }
}
read_unlock(&i_proc->rwlock);
}