Skip to content

Instantly share code, notes, and snippets.

@findchris
Last active January 10, 2017 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save findchris/d8d3ff4d45d28cbbf3dbbdc7b6ffff8b to your computer and use it in GitHub Desktop.
Save findchris/d8d3ff4d45d28cbbf3dbbdc7b6ffff8b to your computer and use it in GitHub Desktop.
Broken access to memory-mapped file in Ruby
Initialized with: NetAcuityMemMap.new('data', 4)
[7] pry(#<NetAcuityMemMap>)> @default_response = response_head_array[0].chomp
=> "$:\xCC\xE1\xBB\r\xC3r\x04r n}\xFF\x92OA7\xBCn\x88\xC0\xA5\x1D\x14\x14\xED\x8D\xD4}[\x1F_\x81\x85\x03\x1F\x10\x01\xE0i\x01\x01\x9DC63\xDB\xBD\xB3&\xB0\t:\xA2\x10\x04\xCA\xC9\e0#\xD4H\xEC_\r\x9C\x9C\xB6\x8D\xAF\xA7\xFA)\xF2Tg\x84Bo\xB1\x97\xDBC\xF4n\x06\x14\xC2\x96n\x8A\x91\xDF\xF2\xDCJ\xF6]\xF6t\x1C\xFB\xD3\x03{\xF9\x06\xB6Q\xA9*-[\xC6\x9B\x10\x12r\xBA-MB\x9DL\x81V\xFB\xD2\x19\x85\xE4\x05\xD0%\xEEE\x96j\xD3<\xEE\x10\xE1\xC6\xCE\xCF\xBD\x1A\xA0('\xC6v\x98K~\xC2\e\x87&\xBE|6\xA5\"D\xC0k:\x89FJ{\x01\x8F[\xFA\x90u7\x14:\x90i\xB4\x8F\xC9\xE8-\xCB)i'~\r\xC7\xD8\xDD\xC6\x10\xCF\e\xB3\x8B\xCE\x05\xE1\xC6\xCE\xCF\xBD\x1A\xA0(\x17\xDE\xD1\x86GA\x9B\x04\x9B\xA1\xAE\xE8\x9E\xFB\xEEW\xF3\xA2\x1D\x91\x90\"\x97Y\xE1\xC6\xCE\xCF\xBD\x1A\xA0(4\xA3<\x8B\xAA*\x9AD\x0F\xF6\xE6\xCC'L\x8Cy\xF8\x97hu\xEC\xFD\x8C\xFB\x02D\xC78w\x928\xECv\x83\"\xFB\x98\xA1\xD9\x9Fd\xE3\xC4#\x01\xA7\xED\xF1\x88\xEA\xD3r>Rz\xB9\x99B\xD5,\x85afB\x02\xF4-\x10\xB2\bl\xD4\x9Eb\x87\xF3\xE5h\x1F#\x91\xC0\xAD8$\xF6w\xAB\xA6\xED\xA5\xB4I\x88\xE5\xA1\"U\v\xD1T;\xB9\x9FB\x91Y\x8F\x80\xE3m\xA1\xA0}\xD0W\xF0&#\xC1\xA6\xED\xA5\xB4I\x88\xE5\xA1\x8Fd\xF1o\xFEv/9B\x91Y\x8F\x80\xE3m\xA1ob\xBFG\x03\n\b\x987\x04g\x8F56\xE0B#h\xC0\x19\x91w\t\xF2\x03/\x87V\x90\xDB\xA4\xCD\xF7B\xC5\b'Y\xC5\xEE\xF7B\xC5\b'Y\xC5\xEE\xF7B\xC5\b'Y\xC5\xEE\xF7B\xC5\b'Y\xC5\xEE\x90\xB3:\x81\xD3A\xFE\xFA\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\xB5\xCD\x83\xF4\xC0\xBE\x9B\x85\xA3\e\x98\xAE\xE9 \xFE\x9F\x7F\x86\xEC\b@\xE1\n\xB8w\x12\x13\x05nlA\xF0\xEE\x1Cy\xBD&18\r\xAC\xE1l\x1C\xD6P?\xEB\xF3,\xC9S\xAF\x02\xEBR\x83\x86\a\x1C\xC8uTv\\R)\ruS\xFA\xD0b0\xF5\xB1\xF6O\xA5\xAE\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\x1E\xFD\x89\x99\xA1\x8F\xE7C\xB5\xCD\x83\xF4\xC0\xBE\x9B\x85Vq\x1D\xE5n\x98\x04\x90\xC1\xDE\xF0\x04\xACZ{Z\x0Ej\xF9\xC2\x1Ap\xB7\\[\xCA\x99TvmzJ\xC6\x19"
[8] pry(#<NetAcuityMemMap>)> @header_line = response_head_array[1].chomp
=> "c\xE4\xF6,1\xB4\x03\xD2\xD3\xDF8]Yi\xFF\x90\xFF\xC0<\xB1\x16>\xC3;\xF4\x87OAg\x14X\xA7z\xBD,\v\x050\xD1\v\xBD\xDD\x1A:\xAA\xB5\r\xAB\xA8\x0F~R$\x9A\xA5FV\xC4\xA7\x8C\x19D\x04\xD1B\x84"
[9] pry(#<NetAcuityMemMap>)> parse_header_line(@header_line)
RuntimeError: Could not parse metadata from response file data/na_04_01.db : undefined method `split' for nil:NilClass
from /Users/chris/code/bridges/lib/geolocator/netacuity_mem_map.rb:191:in `rescue in parse_header_line'
[10] pry(#<NetAcuityMemMap>)> header_line = @header_line
=> "c\xE4\xF6,1\xB4\x03\xD2\xD3\xDF8]Yi\xFF\x90\xFF\xC0<\xB1\x16>\xC3;\xF4\x87OAg\x14X\xA7z\xBD,\v\x050\xD1\v\xBD\xDD\x1A:\xAA\xB5\r\xAB\xA8\x0F~R$\x9A\xA5FV\xC4\xA7\x8C\x19D\x04\xD1B\x84"
[11] pry(#<NetAcuityMemMap>)> header_fields = header_line.split(";")
=> ["c\xE4\xF6,1\xB4\x03\xD2\xD3\xDF8]Yi\xFF\x90\xFF\xC0<\xB1\x16>\xC3",
"\xF4\x87OAg\x14X\xA7z\xBD,\v\x050\xD1\v\xBD\xDD\x1A:\xAA\xB5\r\xAB\xA8\x0F~R$\x9A\xA5FV\xC4\xA7\x8C\x19D\x04\xD1B\x84"]
[12] pry(#<NetAcuityMemMap>)> db_version = header_fields[0]
=> "c\xE4\xF6,1\xB4\x03\xD2\xD3\xDF8]Yi\xFF\x90\xFF\xC0<\xB1\x16>\xC3"
[13] pry(#<NetAcuityMemMap>)> field_count = header_fields[1]
=> "\xF4\x87OAg\x14X\xA7z\xBD,\v\x050\xD1\v\xBD\xDD\x1A:\xAA\xB5\r\xAB\xA8\x0F~R$\x9A\xA5FV\xC4\xA7\x8C\x19D\x04\xD1B\x84"
[14] pry(#<NetAcuityMemMap>)> creation_date = header_fields[2]
=> nil
[15] pry(#<NetAcuityMemMap>)> field_names_array = header_fields[3]
=> nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment