免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1711 | 回复: 3
打印 上一主题 下一主题

为什么会报"segmentation fault"错呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-14 18:38 |只看该作者 |倒序浏览
编译时没有报错,但是运行时报"segmentation fault".
我想可能是这个函数的问题,因为其它编译时没有问题.


  1. int GetPublicKey(int nSockId, char *PublicKey, int nPublicKeyLen)
  2. {
  3.         char PrivateKeyIndex[2+1];
  4.         char *pInBuf;
  5.         int nInLen;
  6.         char *pOutBuf;
  7.         int nOutBufLen;
  8.         long lTimeOut=0;
  9.         char PrivateKeyLen[4+1];
  10.         int nPrivateKeyLen;
  11.         char *BcdPublicKey;
  12.         FILE *fp;
  13.        
  14.        
  15.         memset(PrivateKeyLen, 0x00, sizeof(PrivateKeyLen));
  16.         memset(PrivateKeyIndex, 0x00, sizeof(PrivateKeyIndex));
  17.         memcpy(PrivateKeyIndex, "00", 2);
  18.         PrivateKeyIndex[2] = 0x00;
  19.        
  20.         memcpy(pInBuf, "34", 2);
  21.         memcpy(pInBuf+2, "1024", 4);
  22.         memcpy(pInBuf+6, PrivateKeyIndex, 2);
  23.         pInBuf[8] = 0x00;
  24.         nInLen = 8;
  25.        
  26.         HsmCmd(nSockId,         pInBuf, nInLen, pOutBuf, lTimeOut);
  27.        
  28.         if( strncmp(pOutBuf+2, "00", 2) != 0)
  29.                 return -1;
  30.        
  31.         memcpy(pOutBuf+6, PrivateKeyLen, 4);
  32.         PrivateKeyLen[4]=0x00;
  33.         nPrivateKeyLen = atoi(PrivateKeyLen);
  34.        
  35.         strcpy(BcdPublicKey, (pOutBuf+10+nPrivateKeyLen));
  36.        
  37.         BcdToAsc(BcdPublicKey, PublicKey, strlen(BcdPublicKey));
  38.        
  39.         if( (fp =  fopen( "RsaKey.txt", "w")) == NULL)
  40.                 return -1;
  41.        
  42.         fscanf(fp, "%s", PublicKey);
  43.        
  44.         fclose(fp);
  45.        
  46.         return 0;
  47. }
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2004-06-14 19:02 |只看该作者

为什么会报"segmentation fault"错呢?

这类问题基本上不用看,
统统都是指针没有 malloc、或者字符串不以 '\0' 结尾的问题。

论坛徽章:
0
3 [报告]
发表于 2004-06-14 19:24 |只看该作者

为什么会报"segmentation fault"错呢?

char *pOutBuf;
memcpy(pOutBuf+6, PrivateKeyLen, 4);
   
pOutBuf =?

论坛徽章:
0
4 [报告]
发表于 2004-07-06 15:11 |只看该作者

为什么会报"segmentation fault"错呢?

谢谢!此问题已经解决,是没有malloc的原因。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP