VirtualBox

儲存庫 vbox 的更動 18221


忽略:
時間撮記:
2009-3-24 下午07:35:24 (16 年 以前)
作者:
vboxsync
訊息:

VBoxXPCOMCGlue.c: Drop the malloc/free and use a 4KB static path buffer instead. This mess less mess.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/cbinding/VBoxXPCOMCGlue.c

    r18185 r18221  
    3131*   Header Files                                                               *
    3232*******************************************************************************/
    33 #ifndef VBOX_WITH_XPCOM /** @todo Find libvirt define to test for! */
    34 # include <config.h>
    35 # include "memory.h"
    36 #endif /* !VBOX_WITH_XPCOM */
    37 
    3833#include <stdio.h>
    3934#include <string.h>
     
    5752#endif
    5853
    59 #ifdef VBOX_WITH_XPCOM /** @todo Find libvirt define to test for! */
    60 # define VIR_ALLOC_N(a, b) ((a) = (char *)malloc(b))
    61 # define VIR_FREE(name) (free(name))
    62 #endif /* !VBOX_WITH_XPCOM */
    63 
    6454
    6555/*******************************************************************************
     
    8676{
    8777    size_t      cchHome = pszHome ? strlen(pszHome) : 0;
    88     size_t      cbBuf;
     78    size_t      cbReq;
     79    char        szBuf[4096];
    8980    char *      pszBuf;
    9081    int         rc = -1;
     
    9384     * Construct the full name.
    9485     */
    95     cbBuf = cchHome + sizeof("/" DYNLIB_NAME);
    96     if(VIR_ALLOC_N(pszBuf, cbBuf)) {;}
    97     if (!pszBuf)
    98     {
    99         sprintf(g_szVBoxErrMsg, "malloc(%u) failed", (unsigned)cbBuf);
     86    cbReq = cchHome + sizeof("/" DYNLIB_NAME);
     87    if (cbReq > sizeof(szBuf))
     88    {
     89        sprintf(g_szVBoxErrMsg, "path buffer too small: %u bytes required", (unsigned)cbReq);
    10090        return -1;
    10191    }
     
    142132    else
    143133        sprintf(g_szVBoxErrMsg, "dlopen(%.80s): %128s", pszBuf, dlerror());
    144     VIR_FREE(pszBuf);
    145134    return rc;
    146135}
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette