如果編譯器遇到未定義行為把硬碟格式化了,需要負法律責任嗎?
開了個腦洞,如果c++編譯器把未定義行為(Undefined Behavior)編譯成格式化硬碟,用戶運行程序遭受的損失需要編譯器作者或者其他人負法律責任嗎?
====問題補充:1) 所說的格式化硬碟假設我們可以認定是主觀故意的行為。雖然在C++標準裡面UB確實怎麼做都可以,但是是否可以認為這種行為是在故意損害計算機?我覺得比較trick的地方在於,故意但是符合標準地格式化硬碟是否可以認為是故意破壞?2) EULA應該屬於格式合同吧。格式合同裡面「免除提供格式條款一方當事人主要義務,排除對方當事人主要權利的條款無效」,所以如果能夠認定這種行為是「故意破壞計算機信息系統」,EULA是否有效?(否則按照你們的說法,只要把木馬或者病毒注入到免費軟體裡面傳播,就是合法的?)
騷年太年輕,這種事情早就被想到了:以下文本摘自微軟某免費工具軟體EULA。所有軟體的協議都有類似條款。
12.保證免責條款。該軟體按「原樣」授予許可。使用該軟體的風險需要您自己承擔。Microsoft 不提供任何其他明示的擔保、保證或條件。根據所在地區的法律,您可能擁有其他本協議無法更改的消費者權利。在您當地法律允許的範圍內,Microsoft 排除有關適銷性、針對特定目的的適用性和不侵權的默示擔保。
13.損害和賠償責任的限制和排除。您只能因直接損害從Microsoft 及其供應商處獲得退款,且退款金額上限為 5.00 美元。您不能因任何其他損害獲得退款,包括後果性的、利潤損失、特殊、間接或附帶的損害。
該限制適用於
- 與第三方 Internet 站點上或第三方程序中的軟體、服務、內容(包括代碼)相關的任何情況; 以及
- 在適用法律允許的範圍內,因違約、違反擔保、保證或條件、嚴格責任、過失或其他侵權行為引起的索賠。
- 即使 Microsoft 知道或應該知道出現損害的可能性,該限制也同樣適用。由於您所在國家/地區可能不允許排除或限制附帶的、後果性的或其他損害賠償責任,上述限制和排除可能不適用於您。
你聽說過bumblebee么?install script does rm -rf /usr for ubuntu · Issue #123 · MrMEEE/bumblebee-Old-and-abbandoned · GitHub
我想起了小時候裝遊戲,一不小心裝在D盤根目錄下了,根目錄下多了一堆亂七八糟的文件夾和.dll,不爽,運行uninstall.exe
後面的事情你們都知道了
------------------------------------------------------------------------------------------------------------------------------------------
看來這麼蠢的事情大家果然都沒經歷過。以前很多遊戲的uninstall.exe會在刪除掉註冊表項目、快捷方式等等這些東西以後,把遊戲根目錄下面幾乎所有文件刪除,就留一個日誌文件。
至於我為什麼知道有很多遊戲都這樣?
我不想說。手動再見。最流行的C/C++編譯器是gcc,gcc是GNU協議的,按照GNU協議,軟體和源代碼按原樣提供,使用的風險需要完全由用戶承擔。由於軟體作者承諾的僅僅是「提供」軟體而非交付使用,所以聲明免責應該是有效的,尤其是在未收費的情況下。好比某個人向你提供了一種風險完全未知的看上去是食物的東西,沒有仔細評估過就吃下去就是你不對了。由於開源軟體源代碼完全公開而且保證二進位方式發布的與源代碼完全一致,因此原則上軟體的風險是可以通過審查源代碼發現的,對於用戶也是公平的。對於不開源的軟體,要求用戶風險自擔,我覺得是不合理的。
這就是那些「我沒有閱讀但是同意以上條款」為什麼那麼長
講真你在現在的win vista+的系統上格個盤還得申請許可權。。。
推薦一個案例供大家學習參考程序 bug 導致了天大的損失,要槍斃程序猿嗎?
那得看license怎麼寫。通常對於自由軟體,都有無限免責條款
你們這些編譯器不要聽的風就是雨,將來程序上出了偏差,你等於,你也有責任的吧?
這個事啊,我瞬間就想起來2016年華為軟體精英挑戰賽提供的第一版SDK,是個有bug的SDK,這個SDK裡面的編譯腳本需要在Linux下運行,但是並沒有說不能在Windows下運行,這個腳本在Windows下運行的時候,你這個SDK放在哪個文件夾,哪個文件夾就會被刪除,我運氣算好的,我把SDK放在桌面上,雙擊了一下腳本,桌面所有文件被刪了,後來在討論群里我才知道,有哥們在把SDK放在某盤的根目錄下,可以想想那酸爽,簡直無語倫比……
license裡面的免責條款其實和某些公司簽的幾年內不能生孩子一樣, 法律效力很低.
合同中的下列免責條款無效:一是造成對方人身傷害;二是因故意或者重大過失給對方造成財產損失的
造成人身傷害免責條款直接無效, 造成財產損失的要看哪邊的律師更牛吧破壞計算機信息系統罪是罪, 合同不能免責的.講道理,你需要先證明確實是這個bug把你的硬碟格式化造成的損失,然而既然已經格式化了那是不可能的了~_~
就算這個bug真的會誤格式化硬碟,你怎麼證明不是你誤格式化了硬碟、然後把鍋推給程序呢~_~至於法律上是否真的對舉證要求苛刻到如此程度,就不知道了~_~以下節選自GNU GPL v3。 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BYAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHTHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTYOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.15.免責申明
在適用法律許可下,本授權不對本程序承擔任何擔保責任。除非是書面申明,否則版權所有者和/或提供本程序的第三方組織,「照舊」不承擔任何形式的擔保責任,無論是承諾的還是暗含的,包括但不限於就適售性和為某個特殊目的的適用性的默認擔保責任。有關本程序質量與效能的全部風險均由您承擔。如本程序被證明有瑕疵,您應承擔所有必要的服務、修復或更正的費用。
16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITINGWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANYGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THEUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OFDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRDPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OFSUCH DAMAGES.16.責任範圍
除非受適用法律要求或者書面同意,任何版權所有者,或任何依前述方式修改和/或 發布本程序者,對於您因為使用或不能使用本程序所造成的一般性、特殊性、意外性或間接性損失,不負任何責任(包括但不限於,資料損失,資料執行不精確,或 應由您或第三人承擔的損失,或本程序無法與其他程序運作等),即便該版權所有者或其他組織已經被告知程序有此類損失的可能性也是如此。
(注意看標準,未定義行為也不能瞎搞
未定義行為就算把你硬碟格了然後在屏幕上打個f開頭的一個動詞也是合法的 說不定這個編譯器還十分受歡迎 因為軟體公司老闆可以知道自己應該炒了誰了
上面評論相同推薦閱讀:
※稅吏們(稅務機構)真的是總是想盡一切辦法斂財,再在花出去,而非確定公眾需要多少公眾預算後再據此徵稅嗎?
※如何看待太子輝被判處死刑??
※陳游標砸車是否構成犯罪?
※如果有人用超能力免費治療疾病算封建迷信嗎?