VulCode

Kontrybucje open source: 125 przyjętych zmian w 65 projektach

Poprawki, które opiekunowie cudzych projektów przejrzeli i włączyli do swojego kodu. Od Proxmox VE i edytora Zed po biblioteki PHP, Go i .NET.

Open source
Przyjęte zmiany według języka543 559gwiazdek na GitHubie
  1. Go33 zmianyVersity Gateway (9), Ebitengine (3) i 19 kolejnych
  2. PHP32 zmianyKanboard (4), PHPMailer (3) i 18 kolejnych
  3. JavaScript25 zmiancompromise (21), Autoprefixer (3), spacetime (1)
  4. C#11 zmianILSpy (3), NLog (2) i 5 kolejnych
  5. Rust10 zmianSonic (5), Zed (1) i 4 kolejne
  6. Python6 zmianpydantic-extra-types (2), funcy (1) i 3 kolejne
  7. Perl i JavaScript6 zmianProxmox VE (6)
  8. TypeScript2 zmianyvscode-neovim (1), MailDev (1)
Kwadrat to jedna zmiana przyjęta przez opiekunów projektu, kwadraty jednego projektu stoją razem, w nawiasie ich liczba.

65 projektów, każdy z naszą przyjętą zmianą

Kolor koła to język repozytorium, a koła jednego języka trzymają się razem. Lista największych zaczyna się od Proxmox VE i ILSpy, dalej idą pozostałe według gwiazdek pomnożonych przez liczbę naszych zmian.

Composer1PHPMailer3Monolog1Carbon1Whoops2Doctrine Lexer142121122111113urfave/cli1chezmoi2goquery2311111191111111111Zed1Sonic51111ILSpy3OpenRA1Polly11122321111121116

Wielkość koła: gwiazdki repozytorium. Liczba w kole: nasze przyjęte zmiany. Puste koło: projekt poza GitHubem.

Wszystkie projekty według języka

Grupy od języka z największą liczbą projektów, w grupie od projektu z największą liczbą naszych zmian. Nazwa prowadzi do strony projektu.

Go

21
  • Versity Gatewayversity/versitygw93007

    Najnowsza: fix: compute IsTruncated from the absolute index in ListMultipartUploads (8.10.2026)

  • Ebitenginehajimehoshi/ebiten313 546

    Najnowsza: audio: run the tests waiting on real time on synctest's fake clock (6.10.2026)

  • chezmoitwpayne/chezmoi221 895

    Najnowsza: fix: Don't double backslashes in shellQuote (11.10.2026)

  • goqueryPuerkitoBio/goquery214 989

    Najnowsza: Expose html parse options (addresses #139, noscript) (30.09.2026)

  • urfave/cliurfave/cli124 287

    Najnowsza: fix: use prefixFor for BoolWithInverseFlag names and aliases (8.10.2026)

PHP

20
  • Kanboardkanboard/kanboard49904

    Najnowsza: fix(ical): only accept known columns as the calendar start date (11.10.2026)

  • PHPMailerPHPMailer/PHPMailer322 310

    Najnowsza: Don't send QUIT while DATA is in progress (4.10.2026)

  • Spiral Testingspiral/testing37

    Najnowsza: Ignore line endings in scaffolder output assertions (4.10.2026)

  • Whoopsfilp/whoops213 230

    Najnowsza: Stop output buffer cleanup at buffers that cannot be removed (3.10.2026)

  • Predispredis/predis27778

    Najnowsza: Fix ConnectionErrorProof response count on single node read errors (8.10.2026)

C#

7
  • ILSpyicsharpcode/ILSpy326 543

    Najnowsza: Fix #4137: Keep nint in conditionals with mixed native int branches (11.10.2026)

  • NLogNLog/NLog26547

    Najnowsza: CachedLayoutRendererWrapper - Added CachedUntil to reset cached value when hour or day changes (11.10.2026)

  • Markdigxoofx/markdig25341

    Najnowsza: Fix: keep trailing content out of an unmatched emphasis closer (#743) (19.09.2026)

  • OpenRAOpenRA/OpenRA117 537

    Najnowsza: Preserve player definition order in MapPlayers (11.10.2026)

  • PollyApp-vNext/Polly114 242

    Najnowsza: Return null from FaultGenerator when no fault is generated (6.09.2026)

Rust

6
  • Sonicvaleriansaliou/sonic521 357

    Najnowsza: fix(core): Back up and restore FST buckets again (5.10.2026)

  • Zedzed-industries/zed191 587

    Najnowsza: openai_subscribed: Keep loading slow model catalogs in the background (1.10.2026)

  • PagefindPagefind/pagefind15511

    Najnowsza: fix(pagefind): skip exclude selectors that cannot be parsed (13.09.2026)

  • instamitsuhiko/insta12974

    Najnowsza: Remove trailing semicolon from assert_binary_snapshot! macro body (10.10.2026)

  • rssrust-syndication/rss1504

    Najnowsza: Fix image height validation to allow the spec maximum of 400 (5.09.2026)

Python

5
  • pydantic-extra-typespydantic/pydantic-extra-types2338

    Najnowsza: Add Sha256Str type (3.10.2026)

  • funcySuor/funcy13510

    Najnowsza: fix: _cut_iter yields wrong-length/wrong-content parts when step > n (10.09.2026)

  • python-benedictfabiocaccamo/python-benedict11606

    Najnowsza: Fix RecursionError when assigning a benedict into its own nested descendant (#592) (29.09.2026)

  • pydashdgilland/pydash11447

    Najnowsza: Fix `fill` growing the array when `start` comes after `end` (20.09.2026)

  • pytimeparsewroberts/pytimeparse1299

    Najnowsza: Fix sign character class accidentally matching a pipe `|` (3.10.2026)

JavaScript

3
  • compromisespencermountain/compromise2112 161

    Najnowsza: find payloads by term id so they survive a .remove() (6.10.2026)

  • Autoprefixerpostcss/autoprefixer322 209

    Najnowsza: Add `/* autoprefixer: ignore next warning */` control comment (7.10.2026)

  • spacetimespencermountain/spacetime14107

    Najnowsza: Fix hour() setter clamping to an invalid hour (24) (8.09.2026)

TypeScript

2
  • vscode-neovimvscode-neovim/vscode-neovim17753

    Najnowsza: Keep visual selections whole over characters outside the BMP (23.09.2026)

  • MailDevmaildev/maildev16135

    Najnowsza: Build CID attachment URLs against the API route and base path (22.09.2026)

Perl i JavaScript

1
  • Proxmox VEpve-manager, proxmox-widget-toolkit6poza GitHubem

    Najnowsza: fix #8015: ui: upload: let the user choose the .img image format (29.09.2026)

Przyjęte zmiany z ostatnich 37 dni

125 przyjętych zmian w 65 projektach. Kolumna to wszystkie zmiany jednego dnia, kolor to język repozytorium.

  • Go
  • PHP
  • JavaScript
  • C#
  • Rust
  • Perl i JavaScript
  • Python
  • TypeScript

Najnowsze przyjęte zmiany

Ostatnie zmiany, które opiekunowie projektów włączyli do swojego kodu, z tytułem w brzmieniu z repozytorium i adresem, pod którym każdy może je sprawdzić.

Proxmox VE: poprawki przez listę mailingową

Proxmox nie przyjmuje pull requestów. Łatki wysyła się mailem na pve-devel, po podpisaniu umowy licencyjnej, a opiekun nakłada je na repozytorium sam. Każda nasza łatka odpowiada na zgłoszenie z Bugzilli i nosi jego numer.

Nasze łatki w Proxmox VE6 łatek, 5 zgłoszeń
pve-manager5 łatek
  • #6475Wgrywanie pliku pokazuje samą jego nazwę
  • #7108ipset nie podsuwa dodanych już aliasów
  • #8015Wybór formatu .img przy wgrywaniu
  • #8015Wybór formatu .img przy pobieraniu z adresu
  • #5608Nazwa mapowania zasobów sprawdzana jak w API
proxmox-widget-toolkit1 łatka
  • #6943Wybór sieci pokazuje komentarze wpisów IPv6
  1. Zgłoszenie w Bugzilli

    Błąd z numerem, opisany przez użytkowników. Nasze łatki odpowiadają na te zgłoszenia:

    • #64751 łatka
    • #71081 łatka
    • #80152 łatki
    • #56081 łatka
    • #69431 łatka
  2. Łatka przez git send-email

    Na listę pve-devel, z opisem w treści maila. Od nas: 6 łatek.

  3. Przegląd na liście

    Recenzja i test od opiekunów projektu, na tej samej liście.

ILSpy: poprawki w dekompilatorze .NET

Dekompilator .NET: zamienia skompilowane biblioteki z powrotem w czytelny kod C#. Repozytorium ma 26 543 gwiazdki na GitHubie, a opiekunowie przyjęli od nas 3 zmiany.

  1. Co nie działało

    Kompilator C# zapisuje delegat utworzony z grupy metod w statycznym polu pamięci podręcznej, żeby nie tworzyć go od nowa przy każdym wywołaniu. ILSpy, otwarty dekompilator dla .NET, rozpoznaje ten wzorzec i zamienia go z powrotem na czytelny zapis. Transformacja zakładała jednak, że pole z pamięci zostanie odczytane dokładnie raz. Przy kodzie _ = (Action<int>)M; delegat jest tworzony i od razu odrzucany, więc pole nie jest odczytywane ani razu. Wzorzec nie pasował, a w wyniku dekompilacji zostawało pole o nazwie <>O.<0>__M, której nie da się użyć w C#. Taki kod się nie kompiluje (zgłoszenie #3965).

  2. Co zmieniliśmy

    Gdy pole pamięci nie ma żadnego odczytu, sprawdzenie pamięci zostaje zastąpione utworzeniem delegata, które zabezpieczało. W wyniku pojawia się new Action<int>(M);, czyli kod, który się kompiluje i robi to samo.

  3. Jak to sprawdziliśmy

    Doszedł zestaw przypadków testowych Issue3965 z dziewięcioma scenariuszami: pojedyncza odrzucona konwersja, konwersja przed użyciem i po użyciu tej samej metody, kilka konwersji pod rząd, dwie do tej samej metody, konwersja w warunku i w pętli. Każdy ma zapisany oczekiwany wynik, z którym test porównuje dekompilację.

  4. Czego nas to nauczyło

    Dekompilator musi rozpoznać wzorce, które generuje kompilator, inaczej zostawia w kodzie śmieci po optymalizacjach. Każda poprawka wymagała przeczytania, co dokładnie emituje kompilator C# i VB.

Projekty według tego, czym się zajmują

Daty, logi, poczta i konfiguracja wracają w każdym języku, więc te same rodzaje bibliotek poprawialiśmy w kilku z nich. Wiersz to obszar, kolumna to język repozytorium, kwadrat to jedna przyjęta zmiana.

Narzędzia programisty

16 projektów, 6 języków

Edytory, dekompilator, testy, dokumentacja API, pakiety, CSS, wiersz poleceń i silniki gier.

JavaScriptAutoprefixer
TypeScriptvscode-neovim

Dane i konfiguracja

13 projektów, 5 języków

CSV, konfiguracja i pliki dotfiles, jq, adresy URI, serializacja API i walidacja danych.

Daty i czas

7 projektów, 4 języki

Daty, strefy czasowe i czas zapisany słowami.

JavaScriptspacetime

Markdown, HTML i tekst

7 projektów, 5 języków

Parsery Markdown i HTML, RSS, lekser i język naturalny.

Rustrss
JavaScriptcompromise

Logi i błędy

5 projektów, 2 języki

Zapis logów, strona błędu i ponawianie po awarii.

Wyszukiwanie i magazyny

5 projektów, 3 języki

Silniki wyszukiwania, magazyn zgodny z S3, indeks bitmapowy i klient Redis.

Aplikacje na własny serwer

5 projektów, 4 języki

Wirtualizacja, panel serwerów gier, rozliczenia hostingu, kanban i CI/CD.

Perl i JavaScriptProxmox VE

Funkcje pomocnicze

4 projekty, 2 języki

Zbiory funkcji pomocniczych i statystyka.

Poczta

3 projekty, 3 języki

Wysyłka, testowy serwer SMTP i sprawdzanie adresów.

TypeScriptMailDev

Pytania o kontrybucje

Skąd są te zmiany, jak wybieramy projekty, na jakiej licencji jest nasz kod i czy poprawimy coś w Twojej bibliotece.

Potrzebujesz zespołu, który poprawi błąd u źródła?

Opisz problem z biblioteką albo projektem. Odpiszemy w godzinę.