ZBLOG

static bfd_boolean scan_unit_for_symbols (struct comp_unit *unit) { bfd *abfd = unit->abfd; bfd_byte *info_ptr = unit->first_child_die_ptr; bfd_byte *info_ptr_end = unit->stash->info_ptr_end; int nesting_level = 0; struct nest_f

  1. 在读取属性值后,未检查指针是否为 NULL。

修改:

info_ptr = read_attribute (&attr, &abbrev->attrs[i],
                           unit, info_ptr, info_ptr_end);
if (!info_ptr)
  goto fail;
  1. 在分配内存失败后,未将指针设置为 NULL。

修改:

nested_funcs = (struct nest_funcinfo *)
               bfd_malloc (nested_funcs_size * sizeof (*nested_funcs));
if (!nested_funcs)
{
  nested_funcs_size = 0;
  goto fail;
}
nested_funcs[nesting_level].func = NULL;
  1. 在缺少子句标记时,未检查嵌套级别是否大于零。

修改:

if (!abbrev_number)
{
  if (nesting_level > 0)
    nesting_level--;
  continue;
}
  1. 在无法查找到缩写信息时,未设置错误并跳转到错误处理代码。

修改:

abbrev = lookup_abbrev (abbrev_number, unit->abbrevs);
if (!abbrev)
{
  bfd_set_error (bfd_error_bad_value);
  goto fail;
}
  1. 在读取范围列表失败时,未释放已分配的函数信息。

修改:

if (!read_rangelist (unit, &func->arange, attr.u.val))
{
  if (!func->is_linkage)
    _bfd_release_func_info (abfd, func);
  goto fail;
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=190

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?