返回信息流线程安全和信息安全是什么关系……
这是一条镜像帖。来源:北邮人论坛 / security / #40951同步于 2015/11/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Security机器人发帖
今天被问了个特别囧的问题
zoolsher
2015/11/20镜像同步26 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
下面的C代码
static ConfidentialObject secret = ....;
/** 如果key合法,就给它secret指针,否则给它NULL */
void authorize(int key, ConfidentialObject *obj) {
if (is_legal(key)) {
*obj = &secret;
} else {
*obj = NULL;
}
}
优化器可以做一个优化:
static ConfidentialObject secret = ....;
/** 如果key合法,就给它secret指针,否则给它NULL */
void authorize(int key, ConfidentialObject *obj) {
*obj = &secret; // 猜测大多数情况下都是合法的,不如先赋值了,以减少延迟。
if (!is_legal(key)) {
*obj = NULL;
}
}
反正,这个优化在单线程里是合法的。多线程里会不会泄露机密,或者机器会不会冒烟,就不知道了。