如何看待明尼苏达大学因插入实验性漏洞，被禁止贡献 Linux 内核代码？

谢邀，这个事情有些人认为活该。我其实本来也是这么认为的，毕竟两边都是美国的事，互相批评也挺正常。
但是观察到涉事的人选之后，我个人有那么一点点不成熟的看法。
首先我用两个简单的事实说清楚：
该实验室使用大学官方邮箱提交的代码，是正经代码。
恶意代码是使用随机生成的公共邮箱身份进行提交，并且提交通过之后还主动撤回了。
他们的目标只是为了验证恶意代码是否能提交通过，而不是真的想搞破坏，所以当然会主动撤回。
也就是说，他们其实并没有造成实质上的伤害。
那么，为什么会有借题发挥的事情，导致了学校其它提交的正经代码通通都被撤回？
其实我也不太明白，但是看看这个教授的名字，以及这个学生的名字，我觉得有借机打压，或者被带节奏的可能性。
说到这里，我插播一下另外一件事。一部分人说，华为给Linux提交的代码少得可怜，与其声称的研发投入完全不相匹配。事实真的是这样吗？
据我的了解，并不是这样，华为提交的代码并不少。但是以华为的身份提交代码，接受度相对比较低。所以，华为有一部分代码是借助其它公司提交。这些代码确实也是华为的贡献，华为实际上的贡献比目前看到的更大。
那么，ban掉明尼苏达大学的Linux提交，这样的行为究竟是什么意思？
恶意破坏的代码，本来就不可能以学校官方身份提交，你ban掉官方身份的提交渠道，根本不能规避你所遇到的问题。
就算没有大学机构去研究Linux内核提交对于恶意代码的审核能力，难道就从来没有骇客做类似的事情？互联网上，你本来就不可能在没有完善的防御机制下生存，来自高校的学术研究类的攻击相对来说其实是最善意的一种（因为人家会主动撤回）。

实际上，Linux内核管理能持续运营这么多年，并不是吃白饭的。既然恶意代码使用了随机申请的公共邮箱作为提交身份，对付明尼苏达官方邮箱地址的提交是不相关联的。
明明没有必要，可他们还是用连坐的方式ban掉了整个明尼苏达大学，为什么？是为了给大学以压力，让整个明尼苏达大学谴责这几个科研工作者，结合这个导师的姓名，我觉得这个用意。。。
当然，我的想法仅仅只是个猜想，具体情况吗，当然大家也可以继续吃瓜，毕竟，这事情与我们并没有太直接的联系。

补充：
鉴于有很多人质疑，说他们以学校官方邮箱贡献的代码也是无用的，我放出这些被撤销的贡献，让大家看看，这190个贡献有没有可能全是无用的。
Greg Kroah-Hartman (190):
  Revert "net/rds: Avoid potential use after free in
    rds_send_remove_from_sock"
  Revert "media: st-delta: Fix reference count leak in delta_run_work"
  Revert "media: sti: Fix reference count leaks"
  Revert "media: exynos4-is: Fix several reference count leaks due to
    pm_runtime_get_sync"
  Revert "media: exynos4-is: Fix a reference count leak due to
    pm_runtime_get_sync"
  Revert "media: exynos4-is: Fix a reference count leak"
  Revert "media: ti-vpe: Fix a missing check and reference count leak"
  Revert "media: stm32-dcmi: Fix a reference count leak"
  Revert "media: s5p-mfc: Fix a reference count leak"
  Revert "media: camss: Fix a reference count leak."
  Revert "media: platform: fcp: Fix a reference count leak."
  Revert "media: rockchip/rga: Fix a reference count leak."
  Revert "media: rcar-vin: Fix a reference count leak."
  Revert "media: rcar-vin: Fix a reference count leak."
  Revert "firmware: Fix a reference count leak."
  Revert "drm/nouveau: fix reference count leak in
    nouveau_debugfs_strap_peek"
  Revert "drm/nouveau: fix reference count leak in
    nv50_disp_atomic_commit"
  Revert "drm/nouveau: fix multiple instances of reference count leaks"
  Revert "drm/nouveau/drm/noveau: fix reference count leak in
    nouveau_fbcon_open"
  Revert "PCI: Fix pci_create_slot() reference count leak"
  Revert "omapfb: fix multiple reference count leaks due to
    pm_runtime_get_sync"
  Revert "drm/radeon: Fix reference count leaks caused by
    pm_runtime_get_sync"
  Revert "drm/radeon: fix multiple reference count leak"
  Revert "drm/amdkfd: Fix reference count leaks."
  Revert "platform/chrome: cros_ec_ishtp: Fix a double-unlock issue"
  Revert "usb: dwc3: pci: Fix reference count leak in
    dwc3_pci_resume_work"
  Revert "ASoC: rockchip: Fix a reference count leak."
  Revert "RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq"
  Revert "EDAC: Fix reference count leaks"
  Revert "ASoC: tegra: Fix reference count leaks."
  Revert "test_objagg: Fix potential memory leak in error handling"
  Revert "ASoC: img-parallel-out: Fix a reference count leak"
  Revert "ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt"
  Revert "efi/esrt: Fix reference count leak in
    esre_create_sysfs_entry."
  Revert "scsi: iscsi: Fix reference count leak in
    iscsi_boot_create_kobj"
  Revert "vfio/mdev: Fix reference count leak in
    add_mdev_supported_type"
  Revert "RDMA/core: Fix several reference count leaks."
  Revert "cpuidle: Fix three reference count leaks"
  Revert "iommu: Fix reference count leak in iommu_group_alloc."
  Revert "ACPI: CPPC: Fix reference count leak in
    acpi_cppc_processor_probe()"
  Revert "ACPI: sysfs: Fix reference count leak in
    acpi_sysfs_add_hotplug_profile()"
  Revert "ASoC: fix incomplete error-handling in img_i2s_in_probe."
  Revert "qlcnic: fix missing release in qlcnic_83xx_interrupt_test."
  Revert "RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()"
  Revert "usb: gadget: fix potential double-free in m66592_probe."
  Revert "net/mlx4_core: fix a memory leak bug."
  Revert "rxrpc: Fix a memory leak in rxkad_verify_response()"
  Revert "net: sun: fix missing release regions in cas_init_one()."
  Revert "agp/intel: Fix a memory leak on module initialisation failure"
  Revert "nfp: abm: fix a memory leak bug"
  Revert "power: supply: core: fix memory leak in HWMON error path"
  Revert "media: media/saa7146: fix incorrect assertion in
    saa7146_buffer_finish"
  Revert "ecryptfs: replace BUG_ON with error handling code"
  Revert "clk: samsung: Remove redundant check in
    samsung_cmu_register_one"
  Revert "fs: ocfs: remove unnecessary assertion in dlm_migrate_lockres"
  Revert "media: davinci/vpfe_capture.c: Avoid BUG_ON for register
    failure"
  Revert "media: saa7146: Avoid using BUG_ON as an assertion"
  Revert "media: cx231xx: replace BUG_ON with recovery code"
  Revert "RDMA/srpt: Remove unnecessary assertion in
    srpt_queue_response"
  Revert "staging: kpc2000: remove unnecessary assertions in
    kpc_dma_transfer"
  Revert "xen/grant-table: remove multiple BUG_ON on gnttab_interface"
  Revert "scsi: libfc: remove unnecessary assertion on ep variable"
  Revert "hdlcdrv: replace unnecessary assertion in hdlcdrv_register"
  Revert "nfc: s3fwrn5: replace the assertion with a WARN_ON"
  Revert "nfsd: remove unnecessary assertion in nfsd4_encode_replay"
  Revert "bpf: Remove unnecessary assertion on fp_old"
  Revert "net: caif: replace BUG_ON with recovery code"
  Revert "fore200e: Fix incorrect checks of NULL pointer dereference"
  Revert "mac80211: Remove redundant assertion"
  Revert "rfkill: Fix incorrect check to avoid NULL pointer dereference"
  Revert "pppoe: remove redundant BUG_ON() check in pppoe_pernet"
  Revert "net: atm: Reduce the severity of logging in unlink_clip_vcc"
  Revert "media: rcar_drif: fix a memory disclosure"
  Revert "drm/gma500: fix memory disclosures due to uninitialized bytes"
  Revert "gma/gma500: fix a memory disclosure bug due to uninitialized
    bytes"
  Revert "net: ixgbevf: fix a missing check of
    ixgbevf_write_msg_read_ack"
  Revert "rapidio: fix a NULL pointer dereference when
    create_workqueue() fails"
  Revert "ASoC: cs43130: fix a NULL pointer dereference"
  Revert "ASoC: rt5645: fix a NULL pointer dereference"
  Revert "ALSA: usx2y: fix a double free bug"
  Revert "tracing: Fix a memory leak by early error exit in
    trace_pid_write()"
  Revert "rsi: Fix NULL pointer dereference in kmalloc"
  Revert "net: cw1200: fix a NULL pointer dereference"
  Revert "net: ieee802154: fix missing checks for regmap_update_bits"
  Revert "audit: fix a memory leak bug"
  Revert "x86/PCI: Fix PCI IRQ routing table memory leak"
  Revert "udf: fix an uninitialized read bug and remove dead code"
  Revert "mmc_spi: add a status check for spi_sync_locked"
  Revert "PCI: endpoint: Fix a potential NULL pointer dereference"
  Revert "net/smc: fix a NULL pointer dereference"
  Revert "pinctrl: axp209: Fix NULL pointer dereference after
    allocation"
  Revert "power: charger-manager: fix a potential NULL pointer
    dereference"
  Revert "iio: hmc5843: fix potential NULL pointer dereferences"
  Revert "iio: adc: fix a potential NULL pointer dereference"
  Revert "rtlwifi: fix a potential NULL pointer dereference"
  Revert "net: mwifiex: fix a NULL pointer dereference"
  Revert "video: imsttfb: fix potential NULL pointer dereferences"
  Revert "video: hgafb: fix potential NULL pointer dereference"
  Revert "omapfb: Fix potential NULL pointer dereference in kmalloc"
  Revert "staging: greybus: audio_manager: fix a missing check of
    ida_simple_get"
  Revert "PCI: xilinx: Check for __get_free_pages() failure"
  Revert "media: video-mux: fix null pointer dereferences"
  Revert "thunderbolt: property: Fix a missing check of kzalloc"
  Revert "char: hpet: fix a missing check of ioremap"
  Revert "libnvdimm/btt: Fix a kmemdup failure check"
  Revert "tty: ipwireless: fix missing checks for ioremap"
  Revert "RDMA/i40iw: Handle workqueue allocation failure"
  Revert "usb: u132-hcd: fix potential NULL pointer dereference"
  Revert "usb: sierra: fix a missing check of device_create_file"
  Revert "scsi: qla4xxx: fix a potential NULL pointer dereference"
  Revert "gpio: aspeed: fix a potential NULL pointer dereference"
  Revert "libnvdimm/namespace: Fix a potential NULL pointer dereference"
  Revert "x86/hpet: Prevent potential NULL pointer dereference"
  Revert "staging: rtl8188eu: Fix potential NULL pointer dereference of
    kcalloc"
  Revert "thunderbolt: Fix a missing check of kmemdup"
  Revert "thunderbolt: property: Fix a NULL pointer dereference"
  Revert "media: si2165: fix a missing check of return value"
  Revert "scsi: ufs: fix a missing check of devm_reset_control_get"
  Revert "tty: mxs-auart: fix a potential NULL pointer dereference"
  Revert "tty: atmel_serial: fix a potential NULL pointer dereference"
  Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer
    dereference"
  Revert "HID: logitech: check the return value of
    create_singlethread_workqueue"
  Revert "netfilter: ip6t_srh: fix NULL pointer dereferences"
  Revert "spi : spi-topcliff-pch: Fix to handle empty DMA buffers"
  Revert "net: tipc: fix a missing check of nla_nest_start"
  Revert "net: openvswitch: fix a NULL pointer dereference"
  Revert "ALSA: sb8: add a check for request_region"
  Revert "net: strparser: fix a missing check for
    create_singlethread_workqueue"
  Revert "qlcnic: Avoid potential NULL pointer dereference"
  Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
  Revert "net: 8390: fix potential NULL pointer dereferences"
  Revert "net: fujitsu: fix a potential NULL pointer dereference"
  Revert "net: qlogic: fix a potential NULL pointer dereference"
  Revert "md: Fix failed allocation of md_register_thread"
  Revert "net: rocker: fix a potential NULL pointer dereference"
  Revert "net: thunder: fix a potential NULL pointer dereference"
  Revert "net: lio_core: fix two NULL pointer dereferences"
  Revert "net: liquidio: fix a NULL pointer dereference"
  Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
  Revert "isdn: mISDN: Fix potential NULL pointer dereference of
    kzalloc"
  Revert "libertas: add checks for the return value of
    sysfs_create_group"
  Revert "rtc: hym8563: fix a missing check of block data read"
  Revert "power: twl4030: fix a missing check of return value"
  Revert "misc/ics932s401: Add a missing check to
    i2c_smbus_read_word_data"
  Revert "leds: lp5523: fix a missing check of return value of
    lp55xx_read"
  Revert "media: dvb: Add check on sp8870_readreg"
  Revert "media: dvb: add return value check on Write16"
  Revert "media: mt312: fix a missing check of mt312 reset"
  Revert "media: lgdt3306a: fix a missing check of return value"
  Revert "media: gspca: mt9m111: Check write_bridge for timeout"
  Revert "media: gspca: Check the return value of write_bridge for
    timeout"
  Revert "media: usb: gspca: add a missed check for goto_low_power"
  Revert "media: usb: gspca: add a missed return-value check for
    do_command"
  Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
  Revert "brcmfmac: add a check for the status of usb_register"
  Revert "serial: max310x: pass return value of spi_register_driver"
  Revert "Input: ad7879 - add check for read errors in interrupt"
  Revert "ALSA: sb: fix a missing check of snd_ctl_add"
  Revert "ALSA: gus: add a check of the status of snd_ctl_add"
  Revert "Staging: rts5208: Fix error handling on rtsx_send_cmd"
  Revert "staging: rts5208: Add a check for ms_read_extra_data"
  Revert "dmaengine: qcom_hidma: Check for driver register failure"
  Revert "dmaengine: mv_xor: Fix a missing check in mv_xor_channel_add"
  Revert "iio: ad9523: fix a missing check of return value"
  Revert "mfd: mc13xxx: Fix a missing check of a register-read failure"
  Revert "infiniband: bnxt_re: qplib: Check the return value of
    send_message"
  Revert "gdrom: fix a memory leak bug"
  Revert "net: marvell: fix a missing check of acpi_match_device"
  Revert "atl1e: checking the status of atl1e_write_phy_reg"
  Revert "net: dsa: bcm_sf2: Propagate error value from mdio_write"
  Revert "net: stmicro: fix a missing check of clk_prepare"
  Revert "net: (cpts) fix a missing check of clk_prepare"
  Revert "niu: fix missing checks of niu_pci_eeprom_read"
  Revert "net: chelsio: Add a missing check on cudg_get_buffer"
  Revert "ipv6/route: Add a missing check on proc_dointvec"
  Revert "net/net_namespace: Check the return value of
    register_pernet_subsys()"
  Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
  Revert "net: netxen: fix a missing check and an uninitialized use"
  Revert "drivers/regulator: fix a missing check of return value"
  Revert "net: socket: fix a missing-check bug"
  Revert "dm ioctl: harden copy_params()'s copy_from_user() from
    malicious users"
  Revert "ethtool: fix a missing-check bug"
  Revert "media: isif: fix a NULL pointer dereference bug"
  Revert "yam: fix a missing-check bug"
  Revert "net: cxgb3_main: fix a missing-check bug"
  Revert "virt: vbox: Only copy_from_user the request-header once"
  Revert "ALSA: control: fix a redundant-copy issue"
  Revert "scsi: 3w-xxxx: fix a missing-check bug"
  Revert "scsi: 3w-9xxx: fix a missing-check bug"
  Revert "ethtool: fix a potential missing-check bug"

简单说吧：也许你能从这190个贡献中找到那么两三处可能有问题的贡献，但绝大多数贡献，都是有意义的。
如果你想强调这个学校一贯提交无意义代码，那么请指出这 190 个贡献究竟有几个是真的没用的。