当前位置:  技术问答>linux和unix

公司的防火墙源代码.一个注册proc文件的读函数看不懂

    来源: 互联网  发布时间:2016-12-17

    本文导语:  static ssize_t read_ipmac_bind(char *buffer, char **start, off_t offset, int length, int *eof, void *data) { int len = 0, i; char ip[16]; off_t pos = 0, begin = 0; struct ipmac_item *bp; len += sprintf(buffer + len, "%-16s%-20sn", "IPAddr", "MAC"); if ((i...

static ssize_t read_ipmac_bind(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
{
int len = 0, i;
char ip[16];

off_t pos = 0, begin = 0;
struct ipmac_item *bp;

len += sprintf(buffer + len, "%-16s%-20sn", "IPAddr", "MAC");

if ((i = get_index()) == -1)
goto done_version_i;

for (; i next) {
sprintf(ip, "%u.%u.%u.%u", ntohl(bp->ip) >> 24 & 0xff, ntohl(bp->ip) >> 16 & 0xff, ntohl(bp->ip) >> 8 & 0xff, ntohl(bp->ip) & 0xff);
len += sprintf(buffer + len, "%st%02x:%02x:%02x:%02x:%02x:%02xn", ip, bp->mac[0], bp->mac[1], bp->mac[2], bp->mac[3], bp->mac[4], bp->mac[5]);
pos = begin + len;
if (pos  offset + length) {
goto done_version_i;
}
}
}
}

      done_version_i:
*start = buffer + (offset - begin); /* Start of wanted data */
len -= (offset - begin); /* Start slop */
if (len > length)
len = length;
return len;
}

|
这个代码很容易理解啊,不过有个bug,如果调用者传入比较小的缓存进来 length 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mongodb是哪个公司的以及它的内部构造
  • 公司需要DNS服务器吗,如果有是对公司内部服务还是对公网?
  • 我们公司在局域网中,通过Cisco路由器接DDN,连接总公司.win98可以ping到总公司路由器,但是用了win2k专业版就只能在局域网内ping,数据报出
  • 有谁了解“江苏新晨信息科技发展有限公司”吗,公司怎么样?
  • 大连的C/LINUX程序员请进!你们在那个公司?小弟想投奔,但是苦于没有公司招聘。
  • UNIX服务器连接公司局域网和INTERNET,如果要阻止公司内部访问QQ、MSN之类的使用是不是用iptables阻止端口?
  • 在公司注册时,如何自动生成公司的编号?及通常的COMPANY_ID??
  • 请教各位 我将来想从事嵌入式linux方面的工作。 如果我学好ARM+linux后从事那些行业的工作更好呢? 或者进那些公司更有前途呢?那些公司更适合我呢?
  • 求救:我应聘一家公司,老板出的题目是在Linux下用浏览器观看word或execl,我只需要一点资料先应付过去,或者一点思路也可以。这家公司我
  • 打倒杭州(萧山)时比特公司!!!!!!!!!
  • 在南京的兄弟过来看一下,我们公司在招聘。
  • 德国母公司寻求国内软件开发合作伙伴
  • 推荐几个嵌入式行业的公司吧
  • 用UNIX/Linux开发的公司,面试都问些啥????
  • 我公司想上OA软件,谁能给我点好建议吗?
  • 网上下载的redhat可不可以在公司里用?需要lisence吗?
  • 惠通公司诚聘
  • 哪家公司提供嵌入式Linux手机研发平台?
  • 在公司编java程序用什么工具
  • 公司管理软件 eBag
  • 公司网站模板 Akono


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3