GetEnvironmentVariable():这个函数是第一个用变量值检查nSize吗?
GetEnvironmentVariable() : Is this function firstly check nSize with variable value?
DWORD WINAPI GetEnvironmentVariable(
_In_opt_ LPCTSTR lpName,
_Out_opt_ LPTSTR lpBuffer,
_In_ DWORD nSize
);
getEnvironmentVariable 函数是首先检查 nSize,然后写入 lpBuffer 还是它只是盲目写入并导致缓冲区溢出问题?
Microsoft-MSDN 函数详细信息
如果函数能够容纳nSize
字符,则该函数永远不会写入lbBuffer
导致溢出lpBuffer
。
来自 GetEnvironmentVariable 函数的文档:
如果lpBuffer不够大,无法保存数据,则返回值是保存字符串及其终止空字符所需的缓冲区大小(以字符为单位),并且lpBuffer的内容未定义。
该函数必须信任您将正确的大小传递给它,除了nSize
参数之外,没有边界检查(而且它真的不可能)。
如果nSize
的值大于实际缓冲区,则该函数可能会超出范围写入并导致缓冲区溢出。
相关文章:
- 使用变量值作为 PlaySound 中的路径
- 通过指针偏移量访问结构变量值
- 变量值在 C++ 中的 glutIdleFunc() 中未递增
- 更新 #ifdef 中的现有变量值?
- 尝试更改 main 函数内的全局变量值时出现编译错误 C++.
- 通过 Rcpp 和 bit64 R 包将最大的int64_t变量值从 C++ 传递到 R
- 如何使用 IRBuilder 更新 LLVM IR 中的全局变量值?
- 更改已在运行的程序的变量值
- 在 Xcode 中使用后对外部变量值进行初始化
- C++整数变量值
- 变量值,在三元运算符之后
- 如何获得对不同类的引用,以便从所述类内部获得变量值
- Java应用程序的JNI-c++变量值
- 如何固定从传感器获得的变量值
- 离开方法时重置变量值
- 打印具有通用特定变量值的类对象
- 在宏函数C++中设置宏变量值
- 为什么每次迭代都会获得相同的变量值? C++
- 对象变量值的C 连续检查产生不同的结果
- GetEnvironmentVariable():这个函数是第一个用变量值检查nSize吗?