码迷,mamicode.com
首页 > 系统相关 > 详细

Linux内核编程:源码分析之防御性编程学习

时间:2014-12-28 01:53:17      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:linux kernel

 
/*
 *Kernel  : Linux2.6.32.63 
 *File    : \scripts\mod\modpost.h 
            \scripts\mod\modpost.c  
 *Author  : DavidLin       
 *Date    : 2014-12-25pm       
 *Email   : linpeng1577@163.com or linpeng1577@gmail.com       
 *world   : the city of SZ, in China       
 *Ver     : 000.000.001       
 *history :     editor      time            do       
 *          1)LinPeng       2014-12-25      created this file!       
 *          2)       
 */
 
/* modpost.h */

#define NOFAIL(ptr)    do_nofail((ptr), #ptr) 
void* do_nofail (void* ptr, const char* expr);

/* end of modpost.h */


/* modpost.c */

void* do_nofail(void* ptr, const char* expr)
{
    if(!ptr)
        fatal("modpost: Memory allocation failure:%s.\n", expr);
    return ptr;
}

static struct module* new_module(char* modname)
{
    struct module* mod;
    char *p, *s;
    
    mod = NOFAIL(malloc(sizeof(*mod)));
    memset(mod, 0, sizeof(*mod));
    p = NOFAIL(strdup(modname));
    /* strip trailing .o */
    s = strrchr(p, ‘.‘);
    if(s != NULL)
        if(strcmp(s, ".o") == 0)
            *s = ‘\0‘;
    /* add to list */
    mod->name = p;
    mod->gpl_compatible = -1;
    mod->next = modules;
    modules = mod;
    return mod;
}

Linux内核编程:源码分析之防御性编程学习

标签:linux kernel

原文地址:http://linpeng.blog.51cto.com/9779987/1596710

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!