亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libewf_offset_table.c

?? sleuthit-2.09 一個磁盤的工具集
?? C
字號:
/* * libewf offset table * * Copyright (c) 2006-2007, Joachim Metz <forensics@hoffmannbv.nl>, * Hoffmann Investigations. All rights reserved. * * Refer to AUTHORS for acknowledgements. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, *   this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright notice, *   this list of conditions and the following disclaimer in the documentation *   and/or other materials provided with the distribution. * - Neither the name of the creator, related organisations, nor the names of *   its contributors may be used to endorse or promote products derived from *   this software without specific prior written permission. * - All advertising materials mentioning features or use of this software *   must acknowledge the contribution by people stated in the acknowledgements. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER, COMPANY AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include "libewf_includes.h"#include "libewf_common.h"#include "libewf_notify.h"#include "libewf_offset_table.h"/* Allocates memory for a new offset table struct * Returns a pointer to the new instance, NULL on error */LIBEWF_OFFSET_TABLE *libewf_offset_table_alloc( uint32_t amount ){	LIBEWF_OFFSET_TABLE *offset_table = NULL;	offset_table = (LIBEWF_OFFSET_TABLE *) libewf_common_alloc( LIBEWF_OFFSET_TABLE_SIZE );	if( offset_table == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate offset table.\n" );		return( NULL );	}	offset_table->file_descriptor = (int *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_FILE_DESCRIPTOR_SIZE ), -1 );	if( offset_table->file_descriptor == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate file descriptor.\n" );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->compressed = (uint8_t *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_COMPRESSED_SIZE ), -1 );	if( offset_table->compressed == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate compressed.\n" );		libewf_common_free( offset_table->file_descriptor );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->offset = (off_t *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_OFFSET_SIZE ), 0 );	if( offset_table->offset == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate offset.\n" );		libewf_common_free( offset_table->file_descriptor );		libewf_common_free( offset_table->compressed );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->size = (size_t *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_SIZE_SIZE ), 0 );	if( offset_table->size == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate size.\n" );		libewf_common_free( offset_table->file_descriptor );		libewf_common_free( offset_table->compressed );		libewf_common_free( offset_table->offset );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->hashed = (uint8_t *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_HASHED_SIZE ), -1 );	if( offset_table->hashed == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate hashed.\n" );		libewf_common_free( offset_table->size );		libewf_common_free( offset_table->file_descriptor );		libewf_common_free( offset_table->compressed );		libewf_common_free( offset_table->offset );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->segment_number = (uint16_t *) libewf_common_alloc_cleared( ( amount * LIBEWF_OFFSET_TABLE_SEGMENT_NUMBER_SIZE ), 0 );	if( offset_table->segment_number == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_alloc: unable to allocate segment number.\n" );		libewf_common_free( offset_table->size );		libewf_common_free( offset_table->file_descriptor );		libewf_common_free( offset_table->compressed );		libewf_common_free( offset_table->offset );		libewf_common_free( offset_table->hashed );		libewf_common_free( offset_table );		return( NULL );	}	offset_table->amount = amount;        offset_table->last   = 0;	return( offset_table );}/* Reallocates memory for the dynamic file descriptor, offset and size array * Returns a pointer to the instance, NULL on error */LIBEWF_OFFSET_TABLE *libewf_offset_table_realloc( LIBEWF_OFFSET_TABLE *offset_table, uint32_t amount ){	void *reallocation = NULL;	if( offset_table == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: invalid offset_table.\n" );		return( NULL );	}	reallocation = libewf_common_realloc_new_cleared( offset_table->file_descriptor, ( offset_table->amount * LIBEWF_OFFSET_TABLE_FILE_DESCRIPTOR_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_FILE_DESCRIPTOR_SIZE ), -1 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate file descriptor.\n" );		return( NULL );	}	offset_table->file_descriptor = (int *) reallocation;	reallocation                  = libewf_common_realloc_new_cleared( offset_table->compressed, ( offset_table->amount * LIBEWF_OFFSET_TABLE_COMPRESSED_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_COMPRESSED_SIZE ), -1 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate compressed.\n" );		return( NULL );	}	offset_table->compressed = (uint8_t *) reallocation;	reallocation             = libewf_common_realloc_new_cleared( offset_table->offset, ( offset_table->amount * LIBEWF_OFFSET_TABLE_OFFSET_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_OFFSET_SIZE ), 0 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate offset.\n" );		return( NULL );	}	offset_table->offset = (off_t *) reallocation;	reallocation         = libewf_common_realloc_new_cleared( offset_table->size, ( offset_table->amount * LIBEWF_OFFSET_TABLE_SIZE_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_SIZE_SIZE ), 0 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate size.\n" );		return( NULL );	}	offset_table->size   = (size_t *) reallocation;	reallocation         = libewf_common_realloc_new_cleared( offset_table->hashed, ( offset_table->amount * LIBEWF_OFFSET_TABLE_HASHED_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_HASHED_SIZE ), -1 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate hashed.\n" );		return( NULL );	}	offset_table->hashed = (uint8_t *) reallocation;	reallocation         = libewf_common_realloc_new_cleared( offset_table->segment_number, ( offset_table->amount * LIBEWF_OFFSET_TABLE_SEGMENT_NUMBER_SIZE ), ( amount * LIBEWF_OFFSET_TABLE_SEGMENT_NUMBER_SIZE ), 0 );	if( reallocation == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_realloc: unable to reallocate segment number.\n" );		return( NULL );	}	offset_table->segment_number = (uint16_t *) reallocation;	offset_table->amount         = amount;	return( offset_table );}/* Frees memory of a offset table struct including elements */void libewf_offset_table_free( LIBEWF_OFFSET_TABLE *offset_table ){	if( offset_table == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_free: invalid offset table.\n" );		return;	}	libewf_common_free( offset_table->file_descriptor );	libewf_common_free( offset_table->compressed );	libewf_common_free( offset_table->offset );	libewf_common_free( offset_table->size );	libewf_common_free( offset_table->hashed );	libewf_common_free( offset_table->segment_number );	libewf_common_free( offset_table );}/* Sets the values for a specific offset * Returns 1 if successful, or -1 on error */int8_t libewf_offset_table_set_values( LIBEWF_OFFSET_TABLE *offset_table, uint32_t chunk, int file_descriptor, uint8_t compressed, off_t offset, size_t size, uint16_t segment_number ){	if( offset_table == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_set_values: invalid offset table.\n" );		return( -1 );	}	if( chunk > offset_table->amount )	{		LIBEWF_WARNING_PRINT( "libewf_offset_table_set_values: chunk: %" PRIu32 " not in offset table.\n", chunk );		return( -1 );	}	offset_table->file_descriptor[ chunk ] = file_descriptor;	offset_table->compressed[ chunk ]      = compressed;	offset_table->offset[ chunk ]          = offset;	offset_table->size[ chunk ]            = size;	offset_table->segment_number[ chunk ]  = segment_number;	return( 1 );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜亚洲综合| 一区二区三区在线免费观看| 欧美日韩一区二区电影| av不卡免费电影| 成人精品视频一区二区三区| 狠狠色丁香婷婷综合| 韩国午夜理伦三级不卡影院| 精品在线免费观看| 国内精品在线播放| 国产成人午夜高潮毛片| 成人免费视频caoporn| 波多野结衣中文字幕一区二区三区| 国产成+人+日韩+欧美+亚洲| 国产99久久久久| av在线播放不卡| 在线观看日韩av先锋影音电影院| 欧美三级一区二区| 日韩欧美中文字幕公布| 欧美不卡一二三| 欧美激情在线免费观看| 亚洲欧美一区二区三区孕妇| 亚洲综合激情小说| 琪琪久久久久日韩精品| 国产精品一级在线| 色琪琪一区二区三区亚洲区| 欧美日韩夫妻久久| 久久影视一区二区| 亚洲激情图片一区| 蜜臀精品一区二区三区在线观看| 男人操女人的视频在线观看欧美| 国产精品一区二区三区乱码 | 国产精品久久久久久久久晋中| 国产精品久久久久久久久免费丝袜 | 欧美性生活大片视频| 欧美一级二级三级蜜桃| 日本一区二区三区在线观看| 亚洲精品日韩综合观看成人91| 欧美aa在线视频| 99久久精品情趣| 日韩美女视频在线| 伊人婷婷欧美激情| 国产成人免费高清| 在线不卡一区二区| 亚洲日本乱码在线观看| 激情小说欧美图片| 欧美午夜宅男影院| 国产精品水嫩水嫩| 免费成人在线影院| 欧美视频一区在线| 国产精品久久精品日日| 捆绑变态av一区二区三区| 91香蕉国产在线观看软件| 久久久噜噜噜久噜久久综合| 亚洲成a人v欧美综合天堂下载| 国产成人自拍网| 日韩免费性生活视频播放| 亚洲一本大道在线| 91在线播放网址| 国产精品久久久久久久裸模| 精品一区二区免费| 日韩午夜在线影院| 五月激情六月综合| 欧美色视频在线| 亚洲精品免费一二三区| 成人毛片视频在线观看| 国产日韩欧美激情| 国产乱码精品一区二区三区av | 亚洲欧洲av另类| 顶级嫩模精品视频在线看| 久久综合精品国产一区二区三区| 视频一区二区三区入口| 欧美日韩一区二区在线观看| 亚洲狠狠丁香婷婷综合久久久| www.亚洲免费av| 最近日韩中文字幕| 色94色欧美sute亚洲线路一久| 亚洲图片欧美激情| 在线免费观看日本欧美| 亚洲一级二级在线| 7777精品伊人久久久大香线蕉超级流畅 | 日本欧美韩国一区三区| 欧美精三区欧美精三区| 精东粉嫩av免费一区二区三区| 9191成人精品久久| 免费一级片91| 亚洲精品在线观看视频| 国产综合色视频| 国产欧美一区二区精品性色| 国产成人精品www牛牛影视| 久久久精品免费网站| 粉嫩一区二区三区性色av| 国产精品美女一区二区三区| 92国产精品观看| 亚洲高清视频中文字幕| 日韩一区二区三区三四区视频在线观看 | 亚洲一区日韩精品中文字幕| 欧美午夜电影在线播放| 日韩精品一二区| 久久精品视频在线免费观看| 成a人片亚洲日本久久| 亚洲欧美日韩电影| 欧美一区二区三区免费在线看| 久久99国产精品久久| 国产精品久久久爽爽爽麻豆色哟哟| 色哟哟欧美精品| 另类综合日韩欧美亚洲| 国产精品欧美一级免费| 欧美午夜影院一区| 国产精品原创巨作av| 亚洲精品欧美在线| 精品播放一区二区| 在线一区二区三区四区五区| 久久精品99国产精品| 亚洲男人都懂的| 精品少妇一区二区三区日产乱码| 国产91在线看| 日本视频免费一区| 亚洲天堂2014| 欧美成人艳星乳罩| 欧美性色欧美a在线播放| 国产精品456| 日日噜噜夜夜狠狠视频欧美人| 国产精品丝袜91| 欧美mv日韩mv| 5566中文字幕一区二区电影| 成人h动漫精品| 久久成人综合网| 亚洲福利视频一区| 亚洲欧美日韩国产中文在线| wwwwxxxxx欧美| 日韩欧美专区在线| 欧美日韩精品一区视频| 91在线国产观看| 国产精品 欧美精品| 老司机一区二区| 亚洲成人777| 亚洲自拍偷拍麻豆| 亚洲欧美一区二区不卡| 中文乱码免费一区二区| 久久麻豆一区二区| 26uuu国产日韩综合| 欧美精品99久久久**| 色天天综合色天天久久| 色综合久久天天综合网| 成人精品视频一区二区三区尤物| 国产在线视频一区二区三区| 麻豆成人免费电影| 日韩国产成人精品| 日韩国产在线观看| 日产国产高清一区二区三区| 性欧美大战久久久久久久久| 亚洲精品中文字幕乱码三区| 亚洲乱码国产乱码精品精的特点| 日韩伦理电影网| 一区二区不卡在线播放| 亚洲线精品一区二区三区 | 欧美久久久久久蜜桃| 欧美日韩国产三级| 欧美一区二区三区免费观看视频| 欧美精品日韩精品| 日韩视频中午一区| 精品精品国产高清a毛片牛牛| 亚洲精品一区二区三区在线观看| 精品日本一线二线三线不卡| 久久综合久久鬼色| 国产欧美日韩在线看| 一区视频在线播放| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区二区美女| 奇米影视7777精品一区二区| 精品一区二区精品| 高清视频一区二区| 欧洲亚洲精品在线| 日韩三级精品电影久久久 | 一区二区三区在线看| 一卡二卡欧美日韩| 麻豆精品蜜桃视频网站| 国产91精品一区二区麻豆亚洲| 97aⅴ精品视频一二三区| 欧美日韩一区二区欧美激情| 26uuu色噜噜精品一区| 中文一区二区在线观看| 午夜免费久久看| 国产成人啪免费观看软件| 91视频在线观看免费| 欧美一级生活片| 国产精品二三区| 免费成人性网站| 色诱亚洲精品久久久久久| 欧美一区二区网站| 日韩美女啊v在线免费观看| 美女诱惑一区二区| 欧美在线综合视频| 久久久久久9999| 爽好多水快深点欧美视频| 国产91露脸合集magnet| 91精品国产欧美一区二区| 中文字幕一区二区三区不卡在线| 日本不卡一区二区三区| 一本到高清视频免费精品|