Contact me: hankecnc@gmail.com

探测:可能的错误/风险:memcpy 中的类型不匹配 #855

推推 grbl 3年前 (2023-01-23) 251次浏览

关闭
MoonCactus 开启了这个issue 2015 年 11 月 24 日 · 1条评论

注释

探测:可能的错误/风险:memcpy 中的类型不匹配 #855

碰巧这个 bug 目前是无害的,…只要 sizeof(float)=sizeof(int32_t)。但是类型的改变会引发它。

在 motion_control.c 的 mc_probe_cycle() 中,第 ~312 行

    if (is_no_error) { memcpy(sys.probe_position, sys.position, sizeof(float)*N_AXIS); }

可能应该写成

    if (is_no_error) { memcpy(sys.probe_position, sys.position, sizeof(sys.position)); }

首先使用 sizeof(position) 肯定会更安全,因为类型确实不匹配(position 是 int32_t,而不是 float!)
注意:我没有检查其他地方,但可以假设还有其他情况这种冒险的做法(恕我直言)。

(很抱歉没有分叉所有这些只是为了提交一个拉取请求——对于这么小的修复来说太耗时了)。

探测:可能的错误/风险:memcpy 中的类型不匹配 #855
成员

@MoonCactus: 谢谢!我最近在上游发现了这个小错误并在那里修复了它。本周晚些时候,我将在下游的 master 分支中应用它。

喜欢 (0)