V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  ksedz  ›  全部回复第 7 页 / 共 15 页
回复总数  295
1  2  3  4  5  6  7  8  9  10 ... 15  
2023 年 6 月 20 日
回复了 ksedz 创建的主题 程序员 原来还有可以 poll 不可以 epoll 的 fd
@codehz get_random_bytes_user 里还是可能失败的吧

static ssize_t get_random_bytes_user(struct iov_iter *iter)
{
u32 chacha_state[CHACHA_STATE_WORDS];
u8 block[CHACHA_BLOCK_SIZE];
size_t ret = 0, copied;
if (unlikely(!iov_iter_count(iter)))
return 0;
/*
* Immediately overwrite the ChaCha key at index 4 with random
* bytes, in case userspace causes copy_to_iter() below to sleep
* forever, so that we still retain forward secrecy in that case.
*/
crng_make_state(chacha_state, (u8 *)&chacha_state[4], CHACHA_KEY_SIZE);
/*
* However, if we're doing a read of len <= 32, we don't need to
* use chacha_state after, so we can simply return those bytes to
* the user directly.
*/
if (iov_iter_count(iter) <= CHACHA_KEY_SIZE) {
ret = copy_to_iter(&chacha_state[4], CHACHA_KEY_SIZE, iter);
goto out_zero_chacha;
}
for (;;) {
chacha20_block(chacha_state, block);
if (unlikely(chacha_state[12] == 0))
++chacha_state[13];
copied = copy_to_iter(block, sizeof(block), iter);
ret += copied;
if (!iov_iter_count(iter) || copied != sizeof(block))
break;
BUILD_BUG_ON(PAGE_SIZE % sizeof(block) != 0);
if (ret % PAGE_SIZE == 0) {
if (signal_pending(current))
break;
cond_resched();
}
}
memzero_explicit(block, sizeof(block));
out_zero_chacha:
memzero_explicit(chacha_state, sizeof(chacha_state));
return ret ? ret : -EFAULT;
}


满足 iov_iter_count(iter) <= CHACHA_KEY_SIZE 并且 copy_to_iter(&chacha_state[4], CHACHA_KEY_SIZE, iter) 返回 0
2023 年 6 月 19 日
回复了 ksedz 创建的主题 程序员 原来还有可以 poll 不可以 epoll 的 fd
@codehz 我是跟 openssl 1.0.2 的时候跟踪到的,在 RAND_poll 中调用了对相应设备的 poll 。项目要求所有的 select / poll 都要转为 epoll 集中处理,就遇到了这个问题。
查资料 /dev/urandom 在极端情况下会失败,那虽然它不阻塞,还是要去 poll/epoll 的。但如果设备驱动没有实现对应 poll 方法这就很尴尬了,只能直接在 hook 里让它调用成功了。谢谢讲解。
2023 年 6 月 19 日
回复了 ksedz 创建的主题 程序员 原来还有可以 poll 不可以 epoll 的 fd
@pagxir 完全知识盲区了,之前一直以为 epoll 是可以覆盖 select/poll 的功能的。谢谢解答,我补补知识点。
海外项目用 next.js 挺正常的,原因挺多的
1. 无后端服务发展好,js/ts 成了项目的首选甚至唯一语言
2. react 生态
3. 顺手支持 seo ,很划算
4. vercel 使用方便 + 免费额度
2023 年 6 月 15 日
回复了 ReinerShir 创建的主题 生活 各位的衣服一般都是从哪里买的?
为什么我觉得优衣库的款式和质量还不如便宜得多的快鱼?
对啊,有的时候就是一直听着,听到有趣的地方看看大家的反应,结果弹幕一直刷啊刷的。
不知道对应什么需求,想看之前的弹幕加个上拉不就行了吗。
2023 年 5 月 19 日
回复了 robbaa 创建的主题 程序员 找不到好用又便宜的笔记软件,又想造轮子了
@xiaochuaner emacs + orgmode + github ,这是我唯一能坚持使用的笔记组合,不会动不动想着换笔记软件。就很神奇,我也没想明白为什么。
2023 年 5 月 9 日
回复了 taosimple 创建的主题 程序员 2023 年独立开发者这条路还能走下去吗
“通用型” 就是最大的问题,越通用越难以找到用户。
> 众所周知,IntelliJ 的样式分成 theme 和 schema 两部分,theme 控制 UI ,而 schema 则控制 editor 的内容。(这里就要给 vscode 磕一个了,它就不分,开发 theme 的体验非常舒爽)

VSCode 不区分么,上次想做个自己的高亮主题,支持一些冷门语言,发现无法同时实现词法语法分析和自定义主题。
2022 年 12 月 26 日
回复了 Salticey 创建的主题 生活 现在怎么没人讨论转基因食品的问题了
@tuding 雾霾是肉眼可见的少了(北京),不是一回事。
分母
2022 年 11 月 22 日
回复了 andyJado 创建的主题 程序员 为什么我们不用 git 当数据库呢?
有类似思想的数据库
https://irmin.org
A distributed database built on the same principles as Git

SQL 还是强在足够表达力的基础上标准化程度高吧
2022 年 10 月 19 日
回复了 yuhuanxi 创建的主题 软件 用过很多笔记,最终回到了 obsidian
orgmode + github
2022 年 9 月 20 日
回复了 tsingke 创建的主题 程序员 单元测试有落地效果好的团队吗?
在上家公司的时候推过,指标是代码的行覆盖率。
个人感觉实际用起来能发现不少问题,对功能的正确性更有信心了,明显减少了维护时间。
可能对强类型语言的效果有限。
分母 +1
我向她科普了值班工作的辛苦所在,不一定需求多难,难在 oncall ,让人身心俱疲。
当然她是不听的,还是得吵。
39
2022 年 8 月 31 日
回复了 wenzaiquan199 创建的主题 问与答 为安全问题,早上公司热烈讨论
有必要的,中间人可以拿到数据。
虽然如果能中间人了加密不加密对这个应用没什么影响,但是用户可能不同应用使用相同的密码,加密可以保护用户其他应用账户的安全。
2022 年 7 月 22 日
回复了 binhb 创建的主题 程序员 Deno 这个调查问卷有点调皮😝
问卷在哪,我要填 nextjs
2022 年 7 月 21 日
回复了 charlieethan 创建的主题 C++ 谷歌发布开源开发语言 Carbon : 号称将替代 C++
JavaScript → TypeScript
Java → Kotlin
C++ → Carbon

要是真能像他说的做到这个效果,我是很喜欢的。
1  2  3  4  5  6  7  8  9  10 ... 15  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3160 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 46ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
♥ Do have faith in what you're doing.