140
137
* @return Returns 1 on error
144
TskAutoDb::addImageDetails(const char *const img_ptrs[], int a_num)
140
uint8_t TskAutoDb::addImageDetails(const char *const img_ptrs[], int a_num)
146
142
if (m_db->addImageInfo(m_img_info->itype, m_img_info->sector_size,
151
147
// Add the image names
152
148
for (int i = 0; i < a_num; i++) {
154
const char *img_ptr = NULL;
155
151
img_ptr = img_ptrs[i];
157
// get only the file name (ignore the directory name)
158
for (a = strlen(img_ptr) - 1; a > 0; a--) {
159
if ((img_ptr[a] == '/') || (img_ptr[a] == '\\')) {
153
//// get only the file name (ignore the directory name)
154
//for (a = strlen(img_ptr) - 1; a > 0; a--) {
155
// if ((img_ptr[a] == '/') || (img_ptr[a] == '\\')) {
165
if (m_db->addImageName(m_curImgId, &img_ptr[a], i)) {
161
if (m_db->addImageName(m_curImgId, img_ptr, i)) {
187
184
setVolFilterFlags((TSK_VS_PART_FLAG_ENUM) (TSK_VS_PART_FLAG_ALLOC |
188
185
TSK_VS_PART_FLAG_UNALLOC));
191
retval = findFilesInImg();
187
uint8_t retval = findFilesInImg();
198
TSK_FILTER_ENUM TskAutoDb::filterVs(const TSK_VS_INFO * vs_info)
195
TskAutoDb::filterVs(const TSK_VS_INFO * vs_info)
200
197
m_vsFound = true;
201
198
if (m_db->addVsInfo(vs_info, m_curImgId, m_curVsId)) {
272
268
* or revertProcess() to revert them.
275
TskAutoDb::runProcess(int numImg, const TSK_TCHAR * const imagePaths[],
271
TskAutoDb::runProcess(int numImg, const TSK_TCHAR * const imagePaths[],
276
272
TSK_IMG_TYPE_ENUM imgType, unsigned int sSize)
278
274
if (m_db->savepoint(TSK_ADD_IMAGE_SAVEPOINT))
280
279
if (openImage(numImg, imagePaths, imgType, sSize)
281
280
|| addFilesInImgToDb()) {
282
m_db->rollbackSavepoint(TSK_ADD_IMAGE_SAVEPOINT);
283
// rollbackSavepoint can throw errors too, need to make sure original
284
// error message is preserved;
285
const char *prior_msg = tsk_error_get();
286
if (m_db->rollbackSavepoint(TSK_ADD_IMAGE_SAVEPOINT) ||
287
m_db->releaseSavepoint(TSK_ADD_IMAGE_SAVEPOINT)) {
289
tsk_error_set_errstr("%s caused: %s", prior_msg,
291
TskAutoDb::runProcess(int numImg, const char *const imagePaths[],
303
TskAutoDb::runProcess(int numImg, const char *const imagePaths[],
292
304
TSK_IMG_TYPE_ENUM imgType, unsigned int sSize)
294
306
if (m_db->savepoint(TSK_ADD_IMAGE_SAVEPOINT))
296
311
if (openImageUtf8(numImg, imagePaths, imgType, sSize)
297
312
|| addFilesInImgToDb()) {
298
// rollback on stop command or error
299
m_db->rollbackSavepoint(TSK_ADD_IMAGE_SAVEPOINT);
315
// rollbackSavepoint can throw errors too, need to make sure original
316
// error message is preserved;
317
const char *prior_msg = tsk_error_get();
318
if (m_db->rollbackSavepoint(TSK_ADD_IMAGE_SAVEPOINT) ||
319
m_db->releaseSavepoint(TSK_ADD_IMAGE_SAVEPOINT)) {
321
tsk_error_set_errstr("%s caused: %s", prior_msg,
308
* Cancel (and subesquently revert) the running process.
336
* Cancel the running process.
311
TskAutoDb::stopProcess()
339
TskAutoDb::stopProcess()
313
341
m_stopped = true;
314
342
// flag is checked every time processFile() is called
318
346
* Revert all changes after the process has run sucessfully.
321
TskAutoDb::revertProcess()
349
TskAutoDb::revertProcess()
323
351
m_db->rollbackSavepoint(TSK_ADD_IMAGE_SAVEPOINT);
352
m_db->releaseSavepoint(TSK_ADD_IMAGE_SAVEPOINT);
327
356
* Finish the process after it has run sucessfully by committing the changes.
328
357
* Returns the id of the image that was added.
331
TskAutoDb::commitProcess()
359
int64_t TskAutoDb::commitProcess()
333
361
m_db->releaseSavepoint(TSK_ADD_IMAGE_SAVEPOINT);
334
362
return m_curImgId;