Commit Graph

51 Commits (484c71fc860a1a435d070144a594acf03fb242e8)

Author SHA1 Message Date
Dan Puttick 484c71fc86 Turn off copying for certain mimes in filecheck 2017-03-15 21:06:07 -04:00
Dan Puttick 18857da7ca Several small bugfixes
* Fix issue with main/subtypes in init
* Fix bug in File.check() in filecheck.py
* Fix FileBase.size for symlinks
2017-03-15 21:06:07 -04:00
Dan Puttick 3fe8c7c223 Adjust order of property initialization
Tests were failing due to values being set before file_props dict
was created
2017-03-15 21:06:07 -04:00
Dan Puttick 0038d3ef66 Switch to using file properties
* make_dangerous now takes a description string
* add_file_string takes strings describing the file
2017-03-15 21:06:07 -04:00
Dan Puttick fc8923fddd Change Groomer private methods to public
* Changed safe_rmtree, safe_copy, safe_remove, and safe_mkdir to public methods
* If something is being used in a subclass it probably shouldn't be a private
method
2017-03-15 21:06:07 -04:00
Dan Puttick 12d5624b4d Change FileBase.log_details to Filebase._file_props
* _file_props is a dict that will hold all information about the file
* Updated filecheck.py to reflect this
* Potentially will change contents of file_props to being attributes on the
file in the future. This change would be easy since all access to _file_props
is now via set_property and get_property methods.
* Add filename to _file_props
2017-03-15 21:06:06 -04:00
Dan Puttick 9832101c85 Identify TODOs that are log related 2017-03-15 21:06:06 -04:00
Dan Puttick 8d7dd1197f Move run_process back to Groomer object 2017-03-15 21:06:06 -04:00
Dan Puttick 781d0a76af First working version with methods in File object
- All tests now passing with file handling methods on File object
instead of Groomer object.
- Logging functionality still isn't finished.
2017-03-15 21:06:06 -04:00
Dan Puttick 9aafe6e518 Remove cur_file from methods in File object 2017-03-15 21:06:06 -04:00
Dan Puttick 53c1598af8 Move file processing methods into File object
- It seems like filecheck will be easier to reason about if all of
the file processing stuff happens in the File object. The Groomer
object will now be responsible only for enumerating the files to
be processed.
- Tests won't pass for this commit, but wanted to make the diff
cleaner but committing this before making changes.
2017-03-15 21:04:57 -04:00
Dan Puttick 3d36c90d66 Make list_all_files a public method 2017-03-15 21:04:57 -04:00
Dan Puttick c6ecc5e3a3 Fix process_dir bug in filecheck tests 2017-03-15 21:04:57 -04:00
Dan Puttick cfeccc2561 Move main() into filecheck
- Also change the name of processdir to process_dir
2017-03-15 21:04:57 -04:00
Dan Puttick 61aa14c98d Change _write_log to _print_log 2017-03-15 21:04:57 -04:00
Dan Puttick a450fe6b96 Add config object to filecheck
- Grouped all configuration options for filecheck into a Config object
- Makes the code easier to read since no longer many references to different
configuration globals
2017-03-15 21:04:57 -04:00
Dan Puttick 7d62238270 Hacks to make tests pass before fixing 2017-03-15 21:04:57 -04:00
Dan Puttick 1cf8a62f46 First commit with Logger object
- Made logger object
- Moved some logger related code from Groomer to Logger
- Changed logging related tests
- Filecheck tests still do not pass
2017-03-15 21:04:57 -04:00
Dan Puttick 92d1b1cd93 Refactor metadata processing code 2017-03-15 21:01:28 -04:00
Dan Puttick e2af701ac9 Remove several pieces of unused code
* Remove python 2 KittenGroomerBase.tree
* Remove default source and dest from KittenGroomerFileCheck
* Remove unused sys import
2017-03-15 21:01:28 -04:00
Raphaël Vinot a3cad2c21e Fix forgotten copy 2017-03-14 10:47:20 +01:00
Dan Puttick fd30fb3e08 Change _run_process() to use builtin timeout parameter
NOTE: this change breaks Python 2 compatability: subprocess.check_call does not
take a timeout argument in Python 2.7
2017-01-19 17:00:10 -05:00
Dan Puttick 3dad4faa61 Reorganize tests making them easier to run
- The tests now automatically run depending on whether you have the dependencies
installed, instead of failing and throwing exceptions.
- CONTRIBUTING.md has more information on how to run the tests.
- When the tests run, they will save their logs to /test_logs instead
of printing them so you can read them later.
- Change names of source file directories to make them more descriptive
2017-01-18 15:51:54 -05:00
Dan Puttick 70a73dc292 Move process_file code into its own method 2017-01-18 15:51:50 -05:00
Dan Puttick 173a844b69 Some reorganization of filecheck.py, adding docstrings 2016-12-20 12:35:30 -05:00
Dan Puttick 7bafff3699 Fixed several small filecheck.py bugs for python3 compat 2016-12-16 16:06:12 -05:00
Dan Puttick 4f851435e5 Updated path traversal link, changed pip installs 2016-12-14 15:49:29 -05:00
Raphaël Vinot 04f2185b5d Improve RTF support 2016-05-17 14:10:14 +02:00
Raphaël Vinot fda900afc8 Cleanup unused mimetypes 2016-05-17 11:50:34 +02:00
Raphaël Vinot 61f519edb4 Reduce default recursive archives 2016-05-16 14:23:56 +02:00
Raphaël Vinot d05f8e9665 Fix Archive bomb 2016-05-16 12:25:52 +02:00
Raphaël Vinot 3eecd9cc16 Fix winoffice file processing with olefile 2016-05-14 20:44:16 +02:00
Raphaël Vinot 51615f8887 Handle invalid docx properly 2016-02-01 14:19:51 +01:00
Raphaël Vinot e8de330d34 Proper handling of OOXML docs 2016-02-01 12:34:47 +01:00
Raphaël Vinot 34e7075609 Merge pull request #2 from Dymaxion00/master
Initial working version of EXIF splitting and image format validation…
2015-12-21 00:31:39 +01:00
Eleanor Saitta 53e4570356 Switch back to exifread; PIL's EXIF support sucks. 2015-12-16 16:12:27 -05:00
Eleanor Saitta 53b61d487e Move to PIL for EXIF; add PNG metadata extractor; modularize metadata extraction
Switch back to exifread; PIL's EXIF support sucks.
2015-12-16 16:09:57 -05:00
Raphaël Vinot ecfdeb7b79 Add missing '.' 2015-12-15 10:46:11 +01:00
Eleanor Saitta ca90a08159 Initial working version of EXIF splitting and image format validation by round-trip conversion. 2015-12-10 00:06:36 -05:00
Raphaël Vinot 936fc2c2a2 Proper handling of symlinks 2015-11-24 17:45:06 +01:00
Raphaël Vinot f44aedac17 Print FS tree for unpacked archives 2015-11-24 11:41:45 +01:00
Raphaël Vinot daec0cd689 Add forbidden extensions 2015-11-24 11:40:56 +01:00
Raphaël Vinot 1a2637b252 Use default python-magic, escape filenames 2015-11-05 16:27:48 +01:00
Raphaël Vinot 03f1d90f33 Code de-dupication 2015-11-05 15:34:22 +01:00
Raphaël Vinot b0d0912ff9 Skip the known extension check if mimetypes fails. 2015-11-05 10:34:03 +01:00
Raphaël Vinot 531ab43dae Improve debug, add list of malicious ext 2015-11-05 00:10:30 +01:00
Raphaël Vinot 2669e80ca9 Unpack all archives, debug invalid mimetype 2015-11-03 17:56:42 +01:00
Raphaël Vinot c122ef9db8 Better support of ODF 2015-11-03 15:30:59 +01:00
Raphaël Vinot 5f080e7323 fix call pdfid 2015-11-03 13:04:14 +01:00
Raphaël Vinot d1f1c4fe16 Add new file to travis 2015-11-03 11:12:29 +01:00