Skip to content
Snippets Groups Projects
Commit bc6752d9 authored by Brian Carrier's avatar Brian Carrier
Browse files

Merge branch 'develop' of github.com:sleuthkit/sleuthkit into develop

parents 81a1b595 02321779
No related branches found
No related tags found
No related merge requests found
......@@ -295,7 +295,7 @@ public List<DataSource> getDataSourcesForHost(Host host) throws TskCoreException
return dataSources;
} catch (SQLException | TskDataException ex) {
throw new TskCoreException(String.format("Error getting data sources for host " + host.getName()), ex);
throw new TskCoreException(String.format("Error getting data sources for host %s", host.getName()), ex);
} finally {
db.releaseSingleUserCaseReadLock();
}
......
......@@ -117,7 +117,7 @@ public class SlackFile extends FsContent {
*/
@Override
@SuppressWarnings("deprecation")
protected int readInt(byte[] buf, long offset, long len) throws TskCoreException {
protected synchronized int readInt(byte[] buf, long offset, long len) throws TskCoreException {
if (offset == 0 && size == 0) {
//special case for 0-size file
return 0;
......
......@@ -10090,16 +10090,16 @@ public void setImagePaths(long obj_id, List<String> paths) throws TskCoreExcepti
* within tsk core and the update fails
*/
@Beta
public void setImagePaths(long obj_id, List<String> paths, CaseDbTransaction trans) throws TskCoreException {
public void setImagePaths(long objId, List<String> paths, CaseDbTransaction trans) throws TskCoreException {
try {
PreparedStatement statement = trans.getConnection().getPreparedStatement(PREPARED_STATEMENT.DELETE_IMAGE_NAME);
statement.clearParameters();
statement.setLong(1, obj_id);
statement.setLong(1, objId);
trans.getConnection().executeUpdate(statement);
for (int i = 0; i < paths.size(); i++) {
statement = trans.getConnection().getPreparedStatement(PREPARED_STATEMENT.INSERT_IMAGE_NAME);
statement.clearParameters();
statement.setLong(1, obj_id);
statement.setLong(1, objId);
statement.setString(2, paths.get(i));
statement.setLong(3, i);
trans.getConnection().executeUpdate(statement);
......
......@@ -1613,7 +1613,7 @@ ext2fs_make_data_run_extent(TSK_FS_INFO * fs_info, TSK_FS_ATTR * fs_attr,
static TSK_OFF_T
ext2fs_make_data_run_extent_index(TSK_FS_INFO * fs_info,
TSK_FS_ATTR * fs_attr, TSK_FS_ATTR * fs_attr_extent,
TSK_DADDR_T idx_block)
TSK_DADDR_T idx_block, TSK_DADDR_T * idx_offset)
{
ext2fs_extent_header *header;
TSK_FS_ATTR_RUN *data_run;
......@@ -1655,8 +1655,10 @@ ext2fs_make_data_run_extent_index(TSK_FS_INFO * fs_info,
free(buf);
return 1;
}
data_run->offset = *idx_offset;
++*idx_offset;
data_run->addr = idx_block;
data_run->len = fs_blocksize;
data_run->len = 1;
if (tsk_fs_attr_add_run(fs_info, fs_attr_extent, data_run)) {
tsk_fs_attr_run_free(data_run);
......@@ -1701,7 +1703,7 @@ ext2fs_make_data_run_extent_index(TSK_FS_INFO * fs_info,
index->ei_leaf_hi)) << 16) | tsk_getu32(fs_info->
endian, index->ei_leaf_lo);
if (ext2fs_make_data_run_extent_index(fs_info, fs_attr,
fs_attr_extent, child_block)) {
fs_attr_extent, child_block, idx_offset)) {
free(buf);
return 1;
}
......@@ -1934,6 +1936,7 @@ ext4_load_attrs_extents(TSK_FS_FILE *fs_file)
else { /* interior node */
TSK_FS_ATTR *fs_attr_extent;
int32_t extent_index_size;
TSK_DADDR_T idx_offset;
// Ensure fs_meta->content_ptr is sufficiently large
// Otherwise indices[i] below can cause an OOB read
......@@ -1965,6 +1968,7 @@ ext4_load_attrs_extents(TSK_FS_FILE *fs_file)
}
indices = (ext2fs_extent_idx *) (header + 1);
idx_offset = 0;
for (i = 0; i < num_entries; i++) {
ext2fs_extent_idx *index = &indices[i];
TSK_DADDR_T child_block =
......@@ -1973,7 +1977,7 @@ ext4_load_attrs_extents(TSK_FS_FILE *fs_file)
ei_leaf_hi)) << 16) | tsk_getu32(fs_info->
endian, index->ei_leaf_lo);
if (ext2fs_make_data_run_extent_index(fs_info, fs_attr,
fs_attr_extent, child_block)) {
fs_attr_extent, child_block, &idx_offset)) {
return 1;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment