Skip to content
View VishnuSrivatsava's full-sized avatar

Highlights

  • Pro

Block or report VishnuSrivatsava

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
VishnuSrivatsava/README.md

VISHNU SRIVATSAVA

What I do

Systems programmer. My merged patches fix real bugs in Neovim, curl and Tesseract: code that runs on billions of machines.

Open source, merged upstream

Project Contribution Outcome
neovim/neovim Regex engine crash on invalid multi-byte input Merged
curl/curl RFC 7838 Alt-Svc percent-encoded protocol names never matched Merged, my commit on master
tesseract-ocr/tesseract Renderer failure exited with code 0 Merged
faker-cxx dataUri generator for SVG images, 100th contributor Merged

Also in review: vim (same fix backported), micropython (FFI arity TypeError), and a race condition analysis on an OpenSSL issue.

SocketSweep

Android storage analyzer that bypasses MTP with a parallel C++17 scanner over ADB, a Rust/Tauri desktop app and a React 19 UI. 93,239 files / 51 GB in 7.7 seconds on a Galaxy S24 Ultra. Presented at IndiaFOSS 2026.

Stars Forks

Stack

Competitive programming

Codeforces Specialist 1444 · LeetCode Guardian 2160 · CodeChef 3★ 1739 · WCA profile

Contests & CTFs

Security: Winner, Cryptic Hunt (IIIT Naya Raipur) · Winner, CyberStrike'24 (SNIST) · Runner-up, nu11byt3 CTF Convergence (VNRVJIET)

Coding: Winner, Convergence R1 (VNRVJIET, 400+ competitors) · Finalist, Megathon (IIIT-H, top 6 of 700+)

Speedcubing

WCA competitor since 2018 · 5 medals (2 gold) · top 50 in India, 3x3 One-Handed

Bug autopsies

The full stories behind the merges above: trigger, root cause, fix.

Neovim. Trigger: a regex pattern walking input that contains an undecodable byte next to a combining sequence. Root cause: the grapheme cluster walker treated every byte after a base character as a combining continuation, so the invalid byte was folded into the cluster and the backtracking engine crashed while the NFA engine did not. Fix: undecodable bytes terminate the cluster.

curl. Trigger: an Alt-Svc header advertising HTTP/1.1. Root cause: RFC 7838 percent-encodes protocol tokens containing reserved characters, so HTTP/1.1 arrives as http%2F1.1, and curl compared the encoded token literally against decoded protocol names. Fix: percent-decode before the ALPN mapping.

Tesseract. Trigger: a renderer failure such as a missing output configuration. Root cause: the failure path exited with code 0, so scripts and CI believed a render succeeded when it had not. Fix: propagate EXIT_FAILURE.

Media tools

TransPEG (PyQt + FFmpeg + Google Translate for subtitle translation) and Video Grapher (WASM, extracts GIFs and waveforms in the browser): my FFmpeg work.

Reach me

LinkedIn Email

Pinned Loading

  1. SocketSweep SocketSweep Public

    A high-performance Android storage analyzer that bypasses MTP using a native C++ daemon, a Rust TCP bridge, and a React Treemap UI.

    Rust 139 12

  2. TransPEG TransPEG Public

    PyQT application to translate subtitles automatically

    Python

  3. video-grapher video-grapher Public

    Forked from KanniShashankh/video-grapher

    A Video - "Graphing" Project made with ffmpeg, React, Tailwind CSS

    JavaScript