[分享] 蘋果這次重大資安更新 只是一個小bug

看板C_and_CPP作者 (撫星)時間10年前 (2014/02/25 15:52), 編輯推噓5(505)
留言10則, 8人參與, 最新討論串1/2 (看更多)
簡單說 單行的if敘述 沒有包成block 但裡面的敘述不小心多寫一遍, 所以沒通過判斷式也會執行。 以下重點code: /* 在驗證的function裡頭 前面code略 */ if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; // 多餘的忘記砍掉 if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail; err = sslRawVerify(ctx, ctx->peerPubKey, dataToSign, dataToSignLen, signature, signatureLen); /*中間code略*/ fail: SSLFreeBuffer(&signedHashes); SSLFreeBuffer(&hashCtx); return err; } 詳情請參閱 #1J31gdCL (iPhone) 只能說小bug 大危害 不可不慎啊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.209.191

02/25 15:56, , 1F
有機會是 code merge 時被 tool 差進來的 ?
02/25 15:56, 1F

02/25 16:05, , 2F
記得有看到文章確實是如上所說 (那篇文也去找了 merge 當時
02/25 16:05, 2F

02/25 16:05, , 3F
的那個 diff)
02/25 16:05, 3F

02/25 16:23, , 4F
ALWAYS FAIL
02/25 16:23, 4F

02/25 18:36, , 5F
以前自己也寫過這種bug 找到快死orz
02/25 18:36, 5F

02/25 18:57, , 6F
教訓:小心auto merge tool
02/25 18:57, 6F

02/25 22:02, , 7F
unit test很容易找出這類錯誤
02/25 22:02, 7F

02/28 16:29, , 8F
很好奇哪裡可以取得iOS的source code
02/28 16:29, 8F

03/03 14:21, , 9F
當然是去蘋果上班
03/03 14:21, 9F

03/03 23:54, , 10F
很多人就不喜歡包啊,這種要是出包都超難debug的
03/03 23:54, 10F
文章代碼(AID): #1J34kl7x (C_and_CPP)
文章代碼(AID): #1J34kl7x (C_and_CPP)