-2
package main

import(

crypt "github.com/amoghe/go-crypt"
) 

运行上面的代码会报错:

root@kali:~/Desktop/tools/gos/SUnix# go run crack.go

 github.com/amoghe/go-crypt
/root/go/pkg/mod/github.com/amoghe/go-crypt@v0.0.0-20191109212615-b2ff80594b7f/crypt_r.go: In function ‘gnu_ext_crypt’:
/root/go/pkg/mod/github.com/amoghe/go-crypt@v0.0.0-20191109212615-b2ff80594b7f/crypt_r.go:35:3: warning: 'strncpy' specified bound depends on the length of the source argument...

这画质不好,怎么修

4

1 回答 1

0

此警告由 C 编译器打印(该文件crypt_r.go包含 C 语言的内联代码)以警告作者/用户该代码包含潜在问题。在这种情况下,可以安全地忽略警告,但如果您想修复它,最好在适当的存储库上提出 PR/问题。

warning 'strncpy' specified bound depends on the length of the source argument意味着将字符串副本的长度基于源的长度是不好的做法;如果你这样做并且源比目标缓冲区长,那么你有一个缓冲区溢出,这很糟糕!。但是在这种情况下,目标缓冲区是在 上面的行上创建的,strncpy因此不太可能成为问题(除非分配由于某种原因失败)。

这种事情可能会在用 C(和许多其他语言)编写的应用程序中引起真正的问题;幸运的是,除非您使用不安全的包(或包含 C 代码!),否则 go 会保护您(它会恐慌而不是覆盖缓冲区)。

于 2020-01-26T03:38:08.953 回答