| #!/usr/bin/env python |
| # encoding: utf-8 |
| ''' |
| Module containing functions shared between multiple AFL modules |
| |
| @author: Christian Holler (:decoder) |
| |
| @license: |
| |
| This Source Code Form is subject to the terms of the Mozilla Public |
| License, v. 2.0. If a copy of the MPL was not distributed with this |
| file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| @contact: choller@mozilla.com |
| ''' |
| |
| from __future__ import print_function |
| import random |
| import os |
| import re |
| |
| def randel(l): |
| if not l: |
| return None |
| return l[random.randint(0,len(l)-1)] |
| |
| def randel_pop(l): |
| if not l: |
| return None |
| return l.pop(random.randint(0,len(l)-1)) |
| |
| def write_exc_example(data, exc): |
| exc_name = re.sub(r'[^a-zA-Z0-9]', '_', repr(exc)) |
| |
| if not os.path.exists(exc_name): |
| with open(exc_name, 'w') as f: |
| f.write(data) |