Based on the hypothetical parsing rule: //
is a single-line comment, unless that would cause it to contain {
or }
.
https://console.cloud.google.com/bigquery?sq=36769687750:c41ab4e44c0d42b0be84ff4466e22682
SELECT
Based on the hypothetical parsing rule: //
is a single-line comment, unless that would cause it to contain {
or }
.
https://console.cloud.google.com/bigquery?sq=36769687750:c41ab4e44c0d42b0be84ff4466e22682
SELECT
var fs = require("fs"); | |
var Kattio = { | |
_buf: new Buffer(1 << 14), | |
_bufPos: 0, | |
_bufLen: 0, | |
_ensure: function() { | |
if (this._bufPos === this._bufLen) { | |
this._bufPos = 0; | |
this._bufLen = fs.readSync(0, this._buf, 0, this._buf.length, null); | |
} |
I hereby claim:
To claim this, I am signing this object:
#!/usr/bin/env python3 | |
import sys | |
import struct | |
import argparse | |
from collections import namedtuple | |
REG = { | |
"zero":0, | |
"at":1, |
/** | |
* Author: Simon Lindholm | |
* Date: 2018-07-19 | |
* License: CC0 | |
* Source: own work | |
* Description: Euclidean minimum spanning tree. | |
* Add an "index" member to Point if you need indices returned. | |
* Usage: | |
* Q q; q.ps = ...; | |
* q.init(0,0,1 << 30); // if 0 <= x,y < 2^30 |
Last year's Battlecode engine did JVM instrumentation to sandbox players on the same team from each other, and to limit the amount of computation they were allowed to do. We found two fun vulnerabilities related to the latter part.
The process by which the bytecode instruction limitation was done was by decompiling .class files, adding in instruction-counting instructions in relevant places, and them re-compiling them and running the modified executable. More concretely, say the program contained a method like:
// g++ -O2 -Wall -Wextra -shared -fPIC -o replace.so replace.cpp -I /opt/jdk/include/ -I /opt/jdk/include/linux/ -std=c++11 -L /opt/jdk/lib/server/ -ljvm -Wl,-rpath,/opt/jdk/lib/server/ | |
// LD_PRELOAD=./replace.so java -classpath .:../battlecode/java Player | |
#include <unistd.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <dlfcn.h> | |
#include <link.h> | |
#include <atomic> |
// Async, for use in WebExtensions. CC0. | |
function* gifDecoder($) { | |
var size, r, len; | |
// Header | |
if ($.avail < 6) yield $.Ensure(6); | |
var header = $.read(6); | |
if (header[0] != 0x47 || header[1] != 0x49 || header[2] != 0x46) | |
return $.Error("not a gif"); |
full | |
hål | |
krona | |
hund | |
kniv | |
snöre | |
häst | |
eka | |
klocka | |
matta |
#define _GNU_SOURCE | |
#include <bits/stdc++.h> | |
using namespace std; | |
/* mfbt basic SIMD wrappers. */ | |
#include <math.h> | |
#include <stdint.h> | |
// Figure out how to get access to SIMD on the current compiler. |