Skip to content

Instantly share code, notes, and snippets.

View stapelberg's full-sized avatar

Michael Stapelberg stapelberg

View GitHub Profile
(dlv) b main.main
Breakpoint 1 set at 0x48004e for main.main() ./debugme.go:5
(dlv) c
> main.main() ./debugme.go:5 (hits goroutine(1):1 total:1) (PC: 0x48004e)
1: package main
2:
3: import "os"
4:
=> 5: func main() {
6: fi, _ := os.Lstat("/this/path/does/not/exist")
// Tailscale Frontend: It uses tailscale-as-a-library to
// listen on a port, independently from the operating system network, i.e. you
// can run an nginx server on :80 and :443 without impacting the frontend.
//
// set up DNS, e.g.:
// prometheus.ts.zekjur.net A 100.117.6.125
//
// frontend% TAILSCALE_USE_WIP_CODE=true tailscalefrontend -hostname=srv.example.net -allowed_user=michael@example.net
//
// (first login requires running with TS_LOGIN=1 environment variable to print link for the browser)
goroutine 43 [running]:
runtime.throw(0x3cd01c, 0x21)
/home/michael/sdk/go1.16beta1/src/runtime/panic.go:1112 +0x54 fp=0x400004a740 sp=0x400004a710 pc=0x42654
sync.throw(0x3cd01c, 0x21)
/home/michael/sdk/go1.16beta1/src/runtime/panic.go:1098 +0x30 fp=0x400004a760 sp=0x400004a740 pc=0x71110
sync.(*RWMutex).rUnlockSlow(0x40000acf00, 0xffffffff)
/home/michael/sdk/go1.16beta1/src/sync/rwmutex.go:93 +0x40 fp=0x400004a790 sp=0x400004a760 pc=0x80a10
sync.(*RWMutex).RUnlock(...)
/home/michael/sdk/go1.16beta1/src/sync/rwmutex.go:83
html/template.(*Template).wrapFuncs.func1(0x400009e3d8, 0x1, 0x1, 0x0, 0x0, 0x0)
@stapelberg
stapelberg / gist:2d07cfd9862f0b4fff91ba2deb291325
Created October 10, 2019 08:00
mivaltree.c:678 p *pWin (with compositor)
Thread 1 "Xorg" hit Breakpoint 4, miValidateTree (pParent=0x1a960f0, pChild=0x2644a30, kind=<optimized out>)
at ../../usr/src/xorg-server-amd64-1.20.3-4/mi/mivaltree.c:678
678 if (pWin->viewable) {
$159 = {drawable = {type = 0 '\000', class = 1 '\001', depth = 24 '\030', bitsPerPixel = 32 ' ', id = 20971521, x = 0, y = 0, width = 3200, height = 79,
pScreen = 0x1a71480, serialNumber = 43125}, devPrivates = 0x2644af8, parent = 0x1a960f0, nextSib = 0x26d6d60, prevSib = 0x0, firstChild = 0x0,
lastChild = 0x0, clipList = {extents = {x1 = 0, y1 = 79, x2 = 0, y2 = 79}, data = 0x6178a0 <RegionEmptyData>}, borderClip = {extents = {x1 = 0, y1 = 79,
x2 = 0, y2 = 79}, data = 0x6178a0 <RegionEmptyData>}, valdata = 0x256f880, winSize = {extents = {x1 = 0, y1 = 0, x2 = 3200, y2 = 79}, data = 0x0},
borderSize = {extents = {x1 = 0, y1 = 0, x2 = 3200, y2 = 79}, data = 0x0}, origin = {x = 0, y = 0}, borderWidth = 0, deliverableEvents = 32847,
eventMask = 2326537, background = {pixmap = 0xffffff,
@stapelberg
stapelberg / gist:6d3ffa21c636c00151132b54d8bed4b6
Created October 10, 2019 08:00
mivaltree.c:678 p *pWin (without compositor)
Thread 1 "Xorg" hit Breakpoint 4, miValidateTree (pParent=0x1a960f0, pChild=0x2644a30, kind=<optimized out>)
at ../../usr/src/xorg-server-amd64-1.20.3-4/mi/mivaltree.c:678
678 if (pWin->viewable) {
$109 = {drawable = {type = 0 '\000', class = 1 '\001', depth = 24 '\030', bitsPerPixel = 32 ' ', id = 20971521, x = 0, y = 0, width = 3200, height = 79,
pScreen = 0x1a71480, serialNumber = 43046}, devPrivates = 0x2644af8, parent = 0x1a960f0, nextSib = 0x2644270, prevSib = 0x0, firstChild = 0x0,
lastChild = 0x0, clipList = {extents = {x1 = 0, y1 = 79, x2 = 0, y2 = 79}, data = 0x6178a0 <RegionEmptyData>}, borderClip = {extents = {x1 = 0, y1 = 79,
x2 = 0, y2 = 79}, data = 0x6178a0 <RegionEmptyData>}, valdata = 0x273cd20, winSize = {extents = {x1 = 0, y1 = 0, x2 = 3200, y2 = 79}, data = 0x0},
borderSize = {extents = {x1 = 0, y1 = 0, x2 = 3200, y2 = 79}, data = 0x0}, origin = {x = 0, y = 0}, borderWidth = 0, deliverableEvents = 32845,
eventMask = 2326537, background = {pixmap = 0xffffff,
@stapelberg
stapelberg / gist:06bf82b1e9cec104772a0b80411631ac
Created October 10, 2019 07:45
Xorg SendVisibilityNotify calls when dunst notifications obscure i3lock (with a compositor)
Thread 1 "Xorg" hit Breakpoint 2, SendVisibilityNotify (pWin=pWin@entry=0x2644a30) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c:3035
3035 unsigned int visibility = pWin->visibility;
(gdb) bt
#0 SendVisibilityNotify (pWin=pWin@entry=0x2644a30) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c:3035
#1 0x0000000000447818 in miComputeClips (pParent=pParent@entry=0x2644a30, pScreen=pScreen@entry=0x1a71480, universe=universe@entry=0x7ffc5e4f7e10,
kind=kind@entry=VTMap, exposed=exposed@entry=0x7ffc5e4f7e30) at ../../usr/src/xorg-server-amd64-1.20.3-4/mi/mivaltree.c:276
#2 0x0000000000447cb7 in miValidateTree (pParent=0x1a960f0, pChild=0x2644a30, kind=<optimized out>)
at ../../usr/src/xorg-server-amd64-1.20.3-4/mi/mivaltree.c:681
#3 0x000000000048df96 in MapWindow (pWin=0x2644a30, client=client@entry=0x2694100) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c:2699
#4 0x000000000045e77e in ProcMapWindow (client=0x2694100) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/disp
@stapelberg
stapelberg / gist:38c8320608d3bd0cc5dcb3206f3a6484
Created October 10, 2019 07:43
Xorg SendVisibilityNotify calls when dunst notifications obscure i3lock
(gdb) b SendVisibilityNotify
Breakpoint 2 at 0x48ebe0: file ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c, line 3035.
(gdb) c
Continuing.
Thread 1 "Xorg" hit Breakpoint 2, SendVisibilityNotify (pWin=pWin@entry=0x2644a30) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c:3035
3035 unsigned int visibility = pWin->visibility;
(gdb) bt
#0 SendVisibilityNotify (pWin=pWin@entry=0x2644a30) at ../../usr/src/xorg-server-amd64-1.20.3-4/dix/window.c:3035
#1 0x0000000000447818 in miComputeClips (pParent=pParent@entry=0x2644a30, pScreen=pScreen@entry=0x1a71480, universe=universe@entry=0x7ffc5e4f7e10,
@stapelberg
stapelberg / info-zip.txt
Last active January 6, 2019 12:38
info-zip CVE analysis
I did the following analysis on the status of publicly reported security
vulnerabilities in info-zip, the unzip implementation used by all major Linux
distributions (as well as OpenBSD and NetBSD).
| CVE | impact | debian | rhel | fedora | arch | gentoo | OpenBSD |
| CVE-2018-18384 | (n/a) | fixed | vuln | fixed | fixed | fixed | vuln |
| CVE-2018-1000035 | high | vuln | wontfix | fixed | vuln | vuln | vuln |
| CVE-2016-9844 | medium | fixed | wontfix | fixed | fixed | fixed | vuln |
Disclaimer: some distributions might have system-wide protections against some
@stapelberg
stapelberg / log.txt
Created December 24, 2018 12:27
Temporarily replacing a module
~ % mkdir /tmp/apt
~ % cd /tmp/apt
/tmp/apt % cat > apt.go <<'EOT'
package main
import (
"bytes"
"log"
"github.com/stapelberg/godebiancontrol"
// Binary squashvrfy creates squashfs file system images using the gokrazy
// squashfs writer, then verifies that the resulting image yields the same
// result when mounted.
package main
import (
"bufio"
"bytes"
"compress/gzip"
"flag"