C_and_CPP 板


LINE

请问一下 我在跑一项语法检查程式, 但是跳出底下memcpy使用错误,请问是真的有错吗,谢谢 (1)Error: memcpy insufficient space for operation: data: required=2048, available=1 Code: unsigned char table[2048]; unsigned char *data; data = kcalloc(2048, sizeof(unsigned char), GFP_KERNEL); if (data== NULL) { dev_err(&client->dev, "kcalloc data failed\n"); } memset(table, 0, sizeof(table)); memcpy(&table[0], data, 2048); kfree(data); (2)请问跳出底下memcpy使用错误,请问我的code是真的有错吗,谢谢 Error: Size mismatch in memcpy: g_read_buf[], available:1 , required:4 Code: unsigned char *g_read_buf, main() { ...... g_read_buf = kcalloc(MAX_REPORT_PACKET_SIZE, sizeof(char), GFP_KERNEL); if (g_read_buf == NULL) { pr_err("kcalloc g_read_buf failed\n"); } …… } int i2c_pda_read(struct i2c_client *client, unsigned int u32_addr, unsigned char *r_data, unsigned short length) { struct ts_data *ts = i2c_get_clientdata(client); struct i2c_msg msg[] = { { .addr = I2C_NID, .flags = I2C_WRITE, .len = 1, .buf = &u8_buf, .scl_rate = 400 * 1000, }, { .addr = I2C_NID, .flags = I2C_READ, .len = u16_length, .buf = g_read_buf, .scl_rate = 400 * 1000, }, }; u8_mode |= 0x03; i2c_pda_set_address(ts, u32_addr, u8_mode) if (i2c_transfer(ts->client->adapter, msg, 2) == 2) { memcpy(r_data, g_read_buf, length); } return 0; } ----- Sent from JPTT on my Asus ASUS_Z012DA. --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.39.209 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1635743417.A.395.html
1F:→ petercoin: 第二个参数要再乘上个数吧 11/01 14:48
2F:→ petercoin: 没事 我看错行了Orz 11/01 14:49
3F:推 gusion: 第一个是不是检查程式认为应该要用table而不是&table[0]? 11/01 15:18
4F:→ SuperJGL: 因为跑到memcpy的时候 没有保证kcalloc成功 11/01 15:18
5F:→ SuperJGL: 以第一个为例 data=NULL一样会跑到memcpy 11/01 15:19
6F:推 LPH66: 你的检查是哪支程式检查的? 11/01 16:03
7F:→ lengcycat: LDRA软体测试检查的 11/01 16:47
8F:推 LPH66: 看起来是套装软体, 去查他们的手册里这些错误讯息的意思 11/01 17:29
9F:→ LPH66: 如果是公司软体就去找相关部门要说明书 11/01 17:30
10F:→ F04E: &table[0]的大小确实只有1byte 11/02 07:41
11F:→ F04E: 为什麽memset时用table, 而memcpy用&table[0]?? 11/02 07:42
12F:→ F04E: 改成 memcpy(table, data, 2048); 呢? 11/02 07:43
13F:推 TWkobe: 同楼上 可能语法程式会用sizeof检查你的引数 11/02 15:58
14F:推 LPH66: 这就是为什麽我要原 PO 去找软体手册 11/02 16:16
15F:→ LPH66: 我们在这里只能猜软体 (的设计者) 大概是怎麽想的 11/02 16:16
16F:→ LPH66: 而实际上是不是这样去找手册里一定会写 11/02 16:16
17F:→ LPH66: 尤其如果是套装软体这类的东西那不可能没有这种手册 11/02 16:17
18F:推 liptonbin: 手册说明如下,https://ibb.co/QmtRKvk 11/03 10:49
19F:→ liptonbin: https://ibb.co/x2c5LWn 11/03 10:50
20F:→ liptonbin: 改成 memcpy(table, data, 2048);错误讯息仍是insuffic 11/03 10:53
21F:→ liptonbin: ient space for operation: required=2048,avaiable=1 11/03 10:53
22F:推 LPH66: 看起来手册上面只有针对阵列进行举例, 那你可以去找找 11/03 11:42
23F:→ LPH66: 手册其他地方有没有对於动态记忆体配置相关的说明 11/03 11:42
24F:→ LPH66: 你的程式码看起来都跟动态配置有关 11/03 11:43
25F:推 closer76: 可不可以试试看 1. 把 table 的 size 缩小 或 2. 把 tab 11/03 11:44
26F:→ closer76: le 放到 global space? 11/03 11:44
27F:→ LPH66: 不过我其实有一个更简单的猜测是: 软体看不懂 kcalloc 11/03 11:44
28F:→ closer76: 老实说,看到你在 stack (local variable) 挖 2KB 的空 11/03 11:45
29F:→ closer76: 间,觉得有些毛毛的…… 11/03 11:45
30F:→ closer76: @LPH66: 也有道理!说不定工具是觉得读取到不该读的区域 11/03 11:47
31F:→ closer76: ,而不是写入! 11/03 11:47
32F:→ LPH66: 理论上这种工具得要看得懂动态配置函数才能正确判断 11/03 11:58
33F:→ LPH66: 但既然是「要看得懂」那就是设计者要加入规则表示说 11/03 11:59
34F:→ LPH66: 看到这些函数就当做这指标有指到这麽大的空间 11/03 11:59
35F:→ LPH66: 那 kcalloc 这种只在 kernel 里用的函数就可能不一定有考虑 11/03 12:00







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP