Skip to content

Instantly share code, notes, and snippets.

@majek
majek / reflect_test.py
Created July 9, 2019 10:47
Flow label reflection doesn't work for RST
#!/usr/bin/python3
# Before you start you need to either enable flow label reflection
# sysctl -w net.ipv6.flowlabel_reflect = 1
# or disable flow label consistency
# sysctl -w net.ipv6.flowlabel_consistency = 0
import socket
import struct
IPV6_FL_A_GET = 0
@majek
majek / double_timer_add_bug.c
Last active July 4, 2019 21:48
NEIGH: BUG, double timer add, state is 8
#include <linux/netlink.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <unistd.h>
uint8_t buf1[] =
"\x28\x00\x00\x00\x1c\x00\x1b\x05\xb1\x00\x00\x80\xe2\xfc\x64\xfd\x02"
"\x00\x00\x00\x01\x00\x00\x00\x25\x84\x80\xf0\x0a\x00\x01\x00\x00\x40"
@majek
majek / .gitignore
Last active March 3, 2019 22:25
ebpf overlow bug
ebpf-bug
venv
ebpf-bug-kern.o
ebpf-bug-ebpf.c
bpf_helpers.h
bpf.h
@majek
majek / accept2.stp
Created January 18, 2019 16:56
Accept latency -> time from final ACK to accept()
/*
* stap -v accept2.stp <port> <seconds>
*/
global socks[1024]
global intervals
probe kernel.function("inet_csk_reqsk_queue_add@net/ipv4/inet_connection_sock.c").call {
req = $req
socks[req] = gettimeofday_ns()
}
BasedOnStyle: LLVM
IndentWidth: 8
UseTab: Always
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
AlwaysBreakBeforeMultilineStrings: true
AllowShortBlocksOnASingleLine: false
ContinuationIndentWidth: 8
@majek
majek / proxy.py
Created January 23, 2012 10:55
Python asyncore based tcp proxy
import asyncore
import errno
import os
import socket
import logging
import threading
log = logging.getLogger('tcp_proxy')
_map = {}
#!/bin/bash
(mkdir git && cd git && git init)
for NAME in `ls open*tgz|cut -d "." -f 1|sort`; do
FILE=$NAME.tgz
MD5=`md5sum $FILE`
tar xzf $FILE
(cd git && git rm -r *)
mv $NAME/* git
@majek
majek / process.py
Last active December 19, 2015 04:59
decode ssl v3
data = [
[
"16030100e2010000de030151d1743150b15934aa386f69a593d0f59ddfae80394da9ad164c06814b9cb81d000048c00ac0140088008700390038c00fc00500840035c007c009c011c0130045004400330032c00cc00ec002c0040096004100040005002fc008c01200160013c00dc003feff000a00ff0100006d00000024002200001f7777772e79786567336e6274733668736a743573696b64676d73642e636f6d000b000403000102000a00340032000e000d0019000b000c00180009000a00160017000800060007001400150004000500120013000100020003000f00100011000f000101",
"160301003602000032030151d1746379ee699a97ce167b1f9db4a5da0044e915cdedb85a87baab9aef21a100003900000aff01000100000f00010116030101c10b0001bd0001ba0001b7308201b33082011ca003020102020900858be40d1cc59ccf300d06092a864886f70d0101050500301b31193017060355040313107777772e72756f7561726d362e636f6d301e170d3133303730313131353631325a170d3134303730313131353631325a301c311a3018060355040313117777772e3567346332616b63652e6e657430819f300d06092a864886f70d010101050003818d0030818902818100f7ea49eff87e4fa728b3fd459266bc49b8c7949d25c3a376b0d12b90f790
diff --git a/changes/bug5170 b/changes/bug5170
new file mode 100644
index 0000000..4e52c5e
--- /dev/null
+++ b/changes/bug5170
@@ -0,0 +1,5 @@
+ o Code simplification and refactoring:
+ - Remove contrib/id_to_fp.c since it wasn't used anywhere.
+ - Since OpenSSL 0.9.7 i2d_* functions support allocating output
+ buffer. Avoid calling twice: i2d_RSAPublicKey, i2d_DHparams,
@majek
majek / test_vectors.c
Created March 7, 2013 20:37
Experimenting with defining lists of integers
#include <stdio.h>
#include <limits.h>
#define VEC_MARKER INT_MAX
int main() {
int *test_vectors[] = {
(int[]){1,2,3,4, VEC_MARKER},