Sha256: 716241008dd08a81a7dcdf9c29bb5fb337c2e56308f939d81a2d45452323b19a

Contents?: true

Size: 931 Bytes

Versions: 7

Compression:

Stored size: 931 Bytes

Contents

#include <ruby.h>

static VALUE rb_sym_assess_hash_dup_and_freeze;
static VALUE rb_sym_assess_hash_bracket_constructor;
static VALUE rb_sym_assess_hash_bracket_equals;
static VALUE hash_propagator;

/*
 * Monkeypatch Ruby Hash with Contrast Security Hash in order ot avoid losing
 * tracking across Strings. Hashes, when given unfrozen Strings as keys,
 * replace these Strings with a frozen copy in the hash. This copy is done is C
 * and does not take into account the tag properties we've provided. Freezing
 * ahead of time should avoid this, similar to the behavior of the -@ Strings
 * -HM
 */
static VALUE contrast_assess_hash_bracket_constructor(const int argc, VALUE *argv,
                                                      const VALUE hash);

static VALUE contrast_assess_hash_bracket_set(const int argc, VALUE *argv,
                                              const VALUE hash);

void Init_cs__assess_hash(void);

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
contrast-agent-3.13.2 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.13.1 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.13.0 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.12.2 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.12.1 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.12.0 ext/cs__assess_hash/cs__assess_hash.h
contrast-agent-3.11.0 ext/cs__assess_hash/cs__assess_hash.h