精易论坛

标题: MD5_效验 内部函数MD过程 存在内存泄露风险 [打印本页]

作者: 咏恒ぃ☆吣    时间: 2017-10-29 23:12
标题: MD5_效验 内部函数MD过程 存在内存泄露风险
本帖最后由 咏恒ぃ☆吣 于 2017-10-29 23:16 编辑

https://125.confly.eu.org/thread-13950841-1-1.html
这个帖子出现的内存泄露我觉的是这里出现问题了
  
[e=2].版本 2
子程序名返回值类型公开备 注
MD过程文本型 
参数名类 型参考可空数组备 注
校验数据字节集
种类整数型
长度整数型
变量名类 型静态数组备 注
hCryptProv整数型 
hKey整数型 
hHash整数型 
pbBuffer字节集 
cbHash整数型 
rgbHash字节集 
rgbDigits字节集 
局_MD5字节集 
b整数型 
i整数型 
len整数型 
如果真 (CryptAcquireContextA (hCryptProv, “”, “”, 1, -268435456) = 0)
如果真 (CryptAcquireContextA (hCryptProv, “”, “”, 1, 0) = 0)
CryptReleaseContext (hCryptProv, 0)  ' 这里源代码没用处里释放
返回 (“”)


如果 (CryptCreateHash (hCryptProv, 种类, hKey, 0, hHash) = 0)
CryptDestroyKey (hKey)  ' 这里源代码没用处里释放
CryptReleaseContext (hCryptProv, 0)
返回 (“”)
pbBuffer = 校验数据
len = 取字节集长度 (校验数据)
如果 (CryptHashData (hHash, pbBuffer, len, 0) = 0)
CryptDestroyKey (hKey)  ' 这里源代码没用处里释放
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)
返回 (“”)

rgbHash = 取空白字节集 (长度)
cbHash = 长度
如果 (CryptGetHashParam (hHash, 2, rgbHash, cbHash, 0) = 0)
CryptDestroyKey (hKey);
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)
返回 (“”)

rgbDigits = 到字节集 (“0123456789ABCDEF”)
局_MD5 = 取空白字节集 (长度 × 2)
变量循环首 (0, cbHash - 1, 1, i)
b = rgbHash [i + 1]
局_MD5 [i × 2 + 1] = rgbDigits [右移 (b, 4) + 1]
局_MD5 [i × 2 + 2] = rgbDigits [位与 (b, 15) + 1]
变量循环尾 ()
CryptDestroyKey (hKey)  ' 这里源代码没用处里释放
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)


返回 (到文本 (局_MD5))

作者: 镇坛道德标杆    时间: 2017-10-29 23:22
噩梦一样的代码    -268435456   好奇这个作者能在五分钟内找出这个数字代表什么常量么?


作者: 咏恒ぃ☆吣    时间: 2017-10-30 00:15
镇坛道德标杆 发表于 2017-10-29 23:22
噩梦一样的代码    -268435456   好奇这个作者能在五分钟内找出这个数字代表什么常量么?

CRYPT_VERIFYCONTEXT 这个啊  他这个易语言是这样写的~~
作者: 镇坛道德标杆    时间: 2017-10-30 00:21
咏恒ぃ☆吣 发表于 2017-10-30 00:15
CRYPT_VERIFYCONTEXT 这个啊  他这个易语言是这样写的~~

然后呢?  阅读/修改/维护源码的人呢?   再去查一遍 MSDN 吗? (所以维护力度这么弱,祖传代码谁有那时间一点点去猜)

我日常针对模块,并非针对你。
作者: 咏恒ぃ☆吣    时间: 2017-10-30 12:13
镇坛道德标杆 发表于 2017-10-30 00:21
然后呢?  阅读/修改/维护源码的人呢?   再去查一遍 MSDN 吗? (所以维护力度这么弱,祖传代码谁有那时间 ...

是的 易模块很乱到 bug 很多~~~
作者: 项目部002    时间: 2017-11-1 14:28
在新版中并未存在楼主截图注释的代码,如果方便的话请楼主发下当前使用的是什么版本的精易模块
作者: 桐人dx    时间: 2017-11-3 19:51

作者: 林下慕客    时间: 2017-11-7 13:15

作者: love886    时间: 2017-11-13 13:22
截图注释的代码
作者: myunco    时间: 2017-11-22 20:12
项目部002 发表于 2017-11-1 14:28
在新版中并未存在楼主截图注释的代码,如果方便的话请楼主发下当前使用的是什么版本的精易模块

注释应该是楼主加上去的 ,用来释放 ,意思就是你们没加注释的那行代码
作者: guanjingla    时间: 2017-11-23 10:29
看看吧看看啊叩叩叩
作者: heting0    时间: 2017-12-7 16:43
看看不错的啊




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4