Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165703
  • 博文数量: 21
  • 博客积分: 517
  • 博客等级: 下士
  • 技术积分: 358
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-23 23:42
文章分类

全部博文(21)

文章存档

2015年(2)

2012年(19)

我的朋友

分类: LINUX

2012-05-12 18:25:27

在lib/charset-conv.c的_gftp_get_next_charset函数中有问题,原代码如下:
static /*@null@*/ char *
_gftp_get_next_charset (char **curpos)
{
  char *ret, *endpos;
  size_t len, retlen;

  if (**curpos == '\0')
    return (NULL);

  for (; **curpos == ' ' || **curpos == '\t'; (*curpos)++);

  if ((endpos = strchr (*curpos, ',')) == NULL)
    len = strlen (*curpos) - 1; /* the trailing ',' should be omitted */
  else
    len = endpos - *curpos;

  for (retlen = len - 1;
       (*curpos)[retlen - 1] == ' ' || (*curpos)[retlen - 1] == '\t';
       retlen--);

  retlen++; /* Needed due to the len - 1 above... */
  ret = g_malloc0 (retlen + 1);
  memcpy (ret, *curpos, retlen);

  for (*curpos += len; **curpos == ','; (*curpos)++);

  return (ret);
}

应修改为:
static /*@null@*/ char *
_gftp_get_next_charset (char **curpos)
{
  char *ret, *endpos;
  size_t len, retlen;

  if (**curpos == '\0')
    return (NULL);

  for (; **curpos == ' ' || **curpos == '\t'; (*curpos)++);

  if ((endpos = strchr (*curpos, ',')) == NULL)
    len = strlen (*curpos); /* the trailing ',' should be omitted */
  else
    len = endpos - *curpos;

  for (retlen = len;
       (*curpos)[retlen - 1] == ' ' || (*curpos)[retlen - 1] == '\t';
       retlen--);

  ret = g_malloc0 (retlen + 1);
  memcpy (ret, *curpos, retlen);

  for (*curpos += len; **curpos == ','; (*curpos)++);

  return (ret);
}
阅读(1070) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~