如果你看seq_release:

int seq_release(struct inode *inode, struct file *file)

{

struct seq_file *m = file->private_data;

kvfree(m->buf);

kfree(m);

return 0;

}

它有效地做了kfree(file-> private_data)

现在,file-> private_data在mounts_open_common中设置为

file->private_data = &p->m;

这就是你问题中的kmalloc.

m成员不是指针,因此不应该允许释放.但是,它是struct proc_mounts的1.成员

struct proc_mounts {

struct seq_file m;

struct mnt_namespace *ns;

struct path root;

int (*show)(struct seq_file *, struct vfsmount *);

void *cached_mount;

u64 cached_event;

loff_t cached_index;

};

所以seq_release()对m成员的地址执行kfree(),这与使用p = kmalloc(sizeof(struct proc_mounts),GFP_KERNEL)获得的地址相同;

我想这对静态分析仪来说不是很友好.但是没有内存泄漏.

linux c 内存泄漏,c – linux内核中潜在的内存泄漏?相关推荐

  1. 什么是内存泄漏?Chrome浏览器中怎么查看内存占用情况?

    JavaScript,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时"自动"释放内存,这个自动释放内存的过程称为垃圾回收. 因为自动垃圾回收机制的存在,让大多Jav ...

  2. Linux内核中kzalloc分配内存时用的参数GFP_KERNEL详解

    简介 GFP(Get Free Pages缩写)在include/linux/gfp.h中定义. GFP_KERNEL 是内核内存分配时最常用的,无内存可用时可引起休眠. GFP_ATOMIC 用来从 ...

  3. linux初始化内存盘卡住,分析内核初始化时根内存盘的加载过程(init/main.c)-嵌入式系统-与非网...

    作者:opera 概述 ==== 1)当内核配置了内存盘时, 内核在初始化时可以将软盘加载到内存盘中作为根盘. 当同时配置了初始化内存盘(Initail RAM Disk)时, 内核在初始化时可以在安 ...

  4. ReactiveCocoa中潜在的内存泄漏及解决方案

    ReactiveCocoa是GitHub开源的一个函数响应式编程框架,目前在美团App中大量使用.用过它的人都知道很好用,也确实为我们的生活带来了很多便利,特别是跟MVVM模式结合使用,更是如鱼得水. ...

  5. redhat linux 查看内存大小,CentOS (RHEL) 系统管理中的查看内存插槽数、最大容量和频率...

    Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大,已使用内存多大 [root@HNTX-XY-PIM-HA5 ~]# dmidecode|grep -P -A5 "Memory\ ...

  6. android 获取应用内存大小,如何在Android中获取当前内存使用量?

    这取决于您要获得的内存查询的定义. 通常,您想知道堆内存的状态,因为如果它占用了太多内存,您就会得到OOM并使应用程序崩溃. 为此,您可以检查下一个值:final Runtime runtime =  ...

  7. java list 内存释放_java集合ArrayList中clear方法内存释放分析

    最近在看ArrayList源码的时候看到了ArrayList的clear方法,源码如下: public void clear() { modCount++; // clear to let GC do ...

  8. Linux内核中使用内存检测

    目录 一.slub内存检测 1.越界访问 2.释放后再访问 3.无效的释放 4.实验输出 二.KASAN 内存检测 1.数组越界 2.栈的越界访问 3.实验输出 一般的内存访问错误如下: 越界访问 访 ...

  9. 论文中文翻译——Double-Fetch情况如何演变为Double-Fetch漏洞:Linux内核中的双重获取研究

    本论文相关内容 论文下载地址--Web Of Science 论文中文翻译--How Double-Fetch Situations turn into Double-Fetch Vulnerabil ...

最新文章

  1. c/c++ 避免重复包含 pragma once 和 #ifndef 的区别
  2. oracle 查看表属主和表空间sql
  3. sharepoint2010 SP1 chrome 时常无滚动条
  4. 整合spring cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
  5. [译] 帮助你成为一名成功的 Web 开发工程师的 21 步
  6. 前端学习(2931):vue里面的虚拟dom和算法
  7. vb实现随机生成100个整数,将其中的奇数由大到小排序,偶数由小到大排序,找出其中所有素数并求和
  8. c语言setw函数怎么用,C++中setw()的用法?
  9. bzoj 4011: [HNOI2015]落忆枫音
  10. 输入一个四位数将其加密后输出c语言,从键盘输入一个四位数-按如下规则加密后输出...
  11. SwiftUI3 新组件教程之 TimelineView 制作一闪一闪星耀效果(中文教程)
  12. 解决公司屏蔽上qq的方法
  13. ​iPhone 14 Pro 全系降价 700 元;Gmail 之父:有了 ChatGPT,搜索引擎活不过两年了|极客头条...
  14. 词干抽取java实现_LinkedIn文本分析平台:主题挖掘的四大技术步骤
  15. 如何完成一个简单封包功能辅助--总结
  16. IOS 图标背景是黑色
  17. C++ 原创 小游戏 狼人杀1.0
  18. 来传智播客学到的第一天
  19. pt->onnx->ncnn(pytorch部署自己训练的模型)
  20. 由dll导出lib文件

热门文章

  1. 2020CSP-S1初赛试卷
  2. RSA密钥生成、加密解密、数据签名验签
  3. java 脚手架_撸一个Java脚手架,一统团队项目结构风格
  4. 电竞新时代,AGON爱攻II AG272FCX到底怎么样?
  5. CSDN写文章离开电脑时一定要记得保存及其他注意事项
  6. Redis命令详解:Connection
  7. 北斗+电力,摆脱卫星授时(时钟同步)系统受制于人
  8. java程序员的大数据之路(12):Hadoop的守护进程
  9. 测绘外业界的“新版奥维地图”软件,网友:终于来了!
  10. html计算器重置按钮,在Windows 10中重置和重新安装计算器 | MOS86