Commit 02ca10c7 authored by Cristian Greco's avatar Cristian Greco

Imported Upstream version 20091114

parent 77150723
Acknowledgements: libewf
Copyright (c) 2006-2008, Joachim Metz <forensics@hoffmannbv.nl>,
Hoffmann Investigations. All rights reserved.
Copyright (c) 2006-2009, Joachim Metz <forensics@hoffmannbv.nl>,
Hoffmann Investigations.
This code is derived from information and software contributed by:
- Expert Witness Compression Format specification by Andrew Rosen
......
Roadmap:
* support missing segment files (chunks)
* multiple platform device handle
* libbfio API extensions
* libbfio API extensions (partial)
* low and high level API
- to allow low level access to sections etc. (for recovery)
* lvf support
......@@ -12,7 +12,7 @@ Roadmap:
- getoptlong
* internationalisation
- Unicode support (added)
- locale support
- locale support (partial)
- multi language string support (gettext)
* enhance thread safety
- protect writing to internal data structures
......@@ -72,6 +72,8 @@ Possible performance improvements:
* optimize empty block test
* optimize string functions
- pass length/size as much as possible
* pass zero byte empty block compressed data cache as a pointer
do not copy data to compressed chunk cache
Error handling/tollerance
* what about a function that translates error into an equivalent errno?
......@@ -146,6 +148,7 @@ ewftools:
- handle different input and ouput chunk sizes in low level functions build
- allow different input and output header codepages?
- handle ewf/raw like in smioexport
- creates write only raw export file with msvscpp compilation
* ewfdebug
- create a tool to analyse a single segment file
- implement low and high level api separation
......@@ -196,14 +199,48 @@ Work in progress:
Beta after next stable release
* remove DISABLED in ewfexport
* move manuals/ewfexport.1.backup to manuals/ewfexport.1
Next stable release:
* full test
* remove/disable --enable-v1-api from configure
* remove/disable ewfdebug
* check into resume write error for 32-bit compile
* check make distclean
20091114
* moved codepage definitions to libewf_codepage.h
* updated libbfio
* updated MacOS-X package project file
* removed ewfalter and ewfdebug from stable
20091109
* fix for borland c compilation
* update to MSVSCPP project files
20091108
* fix for MSVSCPP compilation
* fixed incorrect return value in libsystem_glob
* fix for print of program name
20091031
* fix for local use of libewf
20091030
* changed endian.h into byte_stream.h
* updated libuna, libbfio
* updated behavior of unmanaged file io handle
20091024
* add falign in device handle, small performance improvement
20091020
* fixed overflow of chunks_section_number in write io handle
20091018
* worked on aligned empty block test
* fixed error in help output of ewfacquirestream
* fixed error in ewfacquirestream regarding missing strings
* worked on cached zero byte emtpy block based on idea by Bas Kloet
20091017
* preperation for stable release
* removed All rights reserved because it has no additional legal value what so ever
20091003
* several fixes for Debian integration based on patches by Cristian Greco
* corrected license in list and array type and several of the pfftool handles
......
......@@ -17,43 +17,6 @@ SUBDIRS = \
borlandc \
msvscpp
DPKG_FILES = \
dpkg/changelog \
dpkg/changelog.in \
dpkg/compat \
dpkg/control \
dpkg/copyright \
dpkg/cron.d.ex \
dpkg/emacsen-install.ex \
dpkg/emacsen-startup.ex \
dpkg/emacsen-remove.ex \
dpkg/init.d.ex \
dpkg/libewf.install \
dpkg/libewf.dirs \
dpkg/libewf.docs \
dpkg/libewf.postinst.debhelper \
dpkg/libewf.postrm.debhelper \
dpkg/libewf-default.ex \
dpkg/libewf-dev.dirs \
dpkg/libewf-dev.docs \
dpkg/libewf-dev.install \
dpkg/libewf-tools.dirs \
dpkg/libewf-tools.docs \
dpkg/libewf-tools.install \
dpkg/libewf.doc-base.EX \
dpkg/manpage.1.ex \
dpkg/manpage.sgml.ex \
dpkg/manpage.xml.ex \
dpkg/menu.ex \
dpkg/rules \
dpkg/postinst.ex \
dpkg/postrm.ex \
dpkg/preinst.ex \
dpkg/prerm.ex \
dpkg/shlibs.local.ex \
dpkg/shlibs.local.ex.in \
dpkg/watch.ex
SPEC_FILES = \
libewf.spec \
libewf.spec.in
......@@ -89,8 +52,6 @@ distclean: clean
/bin/rm -f config.log
/bin/rm -f libewf.pc
/bin/rm -f libewf.spec
/bin/rm -f dpkg/changelog
/bin/rm -f dpkg/shlibs.local.ex
@for dir in ${subdirs}; do \
(cd $$dir && $(MAKE) distclean) \
|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
......
......@@ -38,8 +38,6 @@ subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/libewf.pc.in \
$(srcdir)/libewf.spec.in $(top_srcdir)/configure \
$(top_srcdir)/dpkg/changelog.in \
$(top_srcdir)/dpkg/shlibs.local.ex.in \
$(top_srcdir)/include/libewf/definitions.h.in \
$(top_srcdir)/include/libewf/features.h.in \
$(top_srcdir)/include/libewf/types.h.in AUTHORS COPYING \
......@@ -57,8 +55,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/common/config.h
CONFIG_CLEAN_FILES = include/libewf/definitions.h \
include/libewf/features.h include/libewf/types.h \
dpkg/changelog dpkg/shlibs.local.ex libewf.pc libewf.spec
include/libewf/features.h include/libewf/types.h libewf.pc \
libewf.spec
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
......@@ -314,43 +312,6 @@ SUBDIRS = \
borlandc \
msvscpp
DPKG_FILES = \
dpkg/changelog \
dpkg/changelog.in \
dpkg/compat \
dpkg/control \
dpkg/copyright \
dpkg/cron.d.ex \
dpkg/emacsen-install.ex \
dpkg/emacsen-startup.ex \
dpkg/emacsen-remove.ex \
dpkg/init.d.ex \
dpkg/libewf.install \
dpkg/libewf.dirs \
dpkg/libewf.docs \
dpkg/libewf.postinst.debhelper \
dpkg/libewf.postrm.debhelper \
dpkg/libewf-default.ex \
dpkg/libewf-dev.dirs \
dpkg/libewf-dev.docs \
dpkg/libewf-dev.install \
dpkg/libewf-tools.dirs \
dpkg/libewf-tools.docs \
dpkg/libewf-tools.install \
dpkg/libewf.doc-base.EX \
dpkg/manpage.1.ex \
dpkg/manpage.sgml.ex \
dpkg/manpage.xml.ex \
dpkg/menu.ex \
dpkg/rules \
dpkg/postinst.ex \
dpkg/postrm.ex \
dpkg/preinst.ex \
dpkg/prerm.ex \
dpkg/shlibs.local.ex \
dpkg/shlibs.local.ex.in \
dpkg/watch.ex
SPEC_FILES = \
libewf.spec \
libewf.spec.in
......@@ -408,10 +369,6 @@ include/libewf/features.h: $(top_builddir)/config.status $(top_srcdir)/include/l
cd $(top_builddir) && $(SHELL) ./config.status $@
include/libewf/types.h: $(top_builddir)/config.status $(top_srcdir)/include/libewf/types.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
dpkg/changelog: $(top_builddir)/config.status $(top_srcdir)/dpkg/changelog.in
cd $(top_builddir) && $(SHELL) ./config.status $@
dpkg/shlibs.local.ex: $(top_builddir)/config.status $(top_srcdir)/dpkg/shlibs.local.ex.in
cd $(top_builddir) && $(SHELL) ./config.status $@
libewf.pc: $(top_builddir)/config.status $(srcdir)/libewf.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
libewf.spec: $(top_builddir)/config.status $(srcdir)/libewf.spec.in
......@@ -896,8 +853,6 @@ distclean: clean
/bin/rm -f config.log
/bin/rm -f libewf.pc
/bin/rm -f libewf.spec
/bin/rm -f dpkg/changelog
/bin/rm -f dpkg/shlibs.local.ex
@for dir in ${subdirs}; do \
(cd $$dir && $(MAKE) distclean) \
|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
......
......@@ -43,269 +43,188 @@
<ItemGroup>
<LibFiles Include="..\Release\liberror.lib">
<IgnorePath>true</IgnorePath>
<BuildOrder>52</BuildOrder>
</LibFiles>
<LibFiles Include="..\Release\libbfio.lib">
<IgnorePath>true</IgnorePath>
<BuildOrder>73</BuildOrder>
</LibFiles>
<LibFiles Include="..\Release\libnotify.lib">
<IgnorePath>true</IgnorePath>
<BuildOrder>71</BuildOrder>
</LibFiles>
<LibFiles Include="..\Release\libuna.lib">
<IgnorePath>true</IgnorePath>
<BuildOrder>72</BuildOrder>
</LibFiles>
<None Include="..\..\..\libewf\libewf_write_io_handle.h">
<BuildOrder>4</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_crc.h">
<BuildOrder>5</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_data.h">
<BuildOrder>6</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_definitions.h">
<BuildOrder>7</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_digest.h">
<BuildOrder>8</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_error2.h">
<BuildOrder>9</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_file_header.h">
<BuildOrder>10</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_hash.h">
<BuildOrder>11</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_ltree.h">
<BuildOrder>12</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_section.h">
<BuildOrder>13</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_session.h">
<BuildOrder>14</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_table.h">
<BuildOrder>15</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_volume.h">
<BuildOrder>16</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewf_volume_smart.h">
<BuildOrder>17</BuildOrder>
</None>
<None Include="..\..\..\libewf\ewfx_delta_chunk.h">
<BuildOrder>18</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf.c">
<BuildOrder>19</BuildOrder>
</CppCompile>
<CppCompile Include="..\..\..\libewf\libewf_chunk_cache.c">
<BuildOrder>20</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_chunk_cache.h">
<BuildOrder>21</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_chunk_offset.h">
<BuildOrder>22</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_codepage.h">
</None>
<CppCompile Include="..\..\..\libewf\libewf_compression.c">
<BuildOrder>23</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_compression.h">
<BuildOrder>24</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_date_time.c">
<BuildOrder>25</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_date_time.h">
<BuildOrder>26</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_date_time_values.c">
<BuildOrder>27</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_date_time_values.h">
<BuildOrder>28</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_debug.c">
<BuildOrder>29</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_debug.h">
<BuildOrder>30</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_definitions.h">
<BuildOrder>31</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_error.c">
<BuildOrder>33</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_empty_block.h">
</None>
<CppCompile Include="..\..\..\libewf\libewf_empty_block.c">
</CppCompile>
<None Include="..\..\..\libewf\libewf_error.h">
<BuildOrder>34</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_extern.h">
<BuildOrder>35</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_filename.c">
<BuildOrder>36</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_filename.h">
<BuildOrder>37</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_handle.c">
<BuildOrder>38</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_handle.h">
<BuildOrder>39</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_hash_sections.c">
<BuildOrder>40</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_hash_sections.h">
<BuildOrder>41</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_hash_values.c">
<BuildOrder>42</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_hash_values.h">
<BuildOrder>43</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_header_sections.c">
<BuildOrder>44</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_header_sections.h">
<BuildOrder>45</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_header_values.c">
<BuildOrder>46</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_header_values.h">
<BuildOrder>47</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_io_handle.c">
<BuildOrder>48</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_io_handle.h">
<BuildOrder>49</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_legacy.c">
<BuildOrder>50</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_legacy.h">
<BuildOrder>51</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_libbfio.h">
<BuildOrder>52</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_libuna.h">
<BuildOrder>53</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_list_type.c">
<BuildOrder>54</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_list_type.h">
<BuildOrder>55</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_media_values.c">
<BuildOrder>56</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_media_values.h">
<BuildOrder>57</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_metadata.c">
<BuildOrder>58</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_metadata.h">
<BuildOrder>59</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_notify.c">
<BuildOrder>60</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_notify.h">
<BuildOrder>61</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_offset_table.c">
<BuildOrder>62</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_offset_table.h">
<BuildOrder>63</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_read_io_handle.c">
<BuildOrder>64</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_read_io_handle.h">
<BuildOrder>65</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_section.c">
<BuildOrder>66</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_section.h">
<BuildOrder>67</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_section_list.c">
<BuildOrder>68</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_section_list.h">
<BuildOrder>69</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_sector_table.c">
<BuildOrder>70</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_sector_table.h">
<BuildOrder>71</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_segment_file.c">
<BuildOrder>72</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_segment_file.h">
<BuildOrder>73</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_segment_file_handle.c">
<BuildOrder>74</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_segment_file_handle.h">
<BuildOrder>75</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_segment_table.c">
<BuildOrder>76</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_segment_table.h">
<BuildOrder>77</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_string.c">
<BuildOrder>78</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_string.h">
<BuildOrder>79</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_support.c">
<BuildOrder>80</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_support.h">
<BuildOrder>81</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_system_string.h">
<BuildOrder>82</BuildOrder>
</None>
<None Include="..\..\..\libewf\libewf_types.h">
<BuildOrder>83</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_values_table.c">
<BuildOrder>84</BuildOrder>
</CppCompile>
<None Include="..\..\..\libewf\libewf_values_table.h">
<BuildOrder>85</BuildOrder>
</None>
<CppCompile Include="..\..\..\libewf\libewf_write_io_handle.c">
<BuildOrder>86</BuildOrder>
</CppCompile>
<LibFiles Include="..\Release\zlib.lib">
<IgnorePath>true</IgnorePath>
<BuildOrder>87</BuildOrder>
</LibFiles>
<BuildConfiguration Include="Base">
<Key>Base</Key>
......
......@@ -37,6 +37,14 @@
<TASM_Debugging>None</TASM_Debugging>
</PropertyGroup>
<ItemGroup>
<CppCompile Include="..\..\..\libuna\libuna_base64_stream.c">
</CppCompile>
<None Include="..\..\..\libuna\libuna_base64_stream.h">
</None>
<CppCompile Include="..\..\..\libuna\libuna_base64url_stream.c">
</CppCompile>
<None Include="..\..\..\libuna\libuna_base64url_stream.h">
</None>
<CppCompile Include="..\..\..\libuna\libuna_byte_stream.c">
</CppCompile>
<None Include="..\..\..\libuna\libuna_byte_stream.h">
......
AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_DIST = \
byte_stream.h \
common.h \
config.h \
config_borlandc.h \
config_msc.h \
endian.h \
file_stream.h \
memory.h \
narrow_string.h \
......@@ -13,13 +13,6 @@ EXTRA_DIST = \
types.h.in \
wide_string.h
if HAVE_MEMWATCH
noinst_LTLIBRARIES = libmemwatch.la
libmemwatch_la_SOURCES = \
memwatch.c memwatch.h
endif
distclean: clean
/bin/rm -f config.h
/bin/rm -f types.h
......
......@@ -14,7 +14,6 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
......@@ -48,29 +47,8 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = types.h
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libmemwatch_la_LIBADD =
am__libmemwatch_la_SOURCES_DIST = memwatch.c memwatch.h
@HAVE_MEMWATCH_TRUE@am_libmemwatch_la_OBJECTS = memwatch.lo
libmemwatch_la_OBJECTS = $(am_libmemwatch_la_OBJECTS)
@HAVE_MEMWATCH_TRUE@am_libmemwatch_la_rpath =
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libmemwatch_la_SOURCES)
DIST_SOURCES = $(am__libmemwatch_la_SOURCES_DIST)
ETAGS = etags
CTAGS = ctags
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
......@@ -234,11 +212,11 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_DIST = \
byte_stream.h \
common.h \
config.h \
config_borlandc.h \
config_msc.h \
endian.h \
file_stream.h \
memory.h \
narrow_string.h \
......@@ -246,15 +224,10 @@ EXTRA_DIST = \
types.h.in \
wide_string.h
@HAVE_MEMWATCH_TRUE@noinst_LTLIBRARIES = libmemwatch.la
@HAVE_MEMWATCH_TRUE@libmemwatch_la_SOURCES = \
@HAVE_MEMWATCH_TRUE@ memwatch.c memwatch.h