...
|
...
|
@@ -2362,10 +2362,16 @@ static int magic_scandesc(int desc, cli_ctx *ctx, cli_file_t type)
|
2362
|
2362
|
res = cli_scanraw(ctx, type, typercg, &dettype, hash);
|
2363
|
2363
|
if(res != CL_CLEAN) {
|
2364
|
2364
|
switch(res) {
|
2365
|
|
- /* Short list of scan halts, major runtime errors only! */
|
2366
|
|
- case CL_EREAD:
|
|
2365
|
+ /* List of scan halts, runtime errors only! */
|
|
2366
|
+ case CL_EUNLINK:
|
|
2367
|
+ case CL_ESTAT:
|
2367
|
2368
|
case CL_ESEEK:
|
|
2369
|
+ case CL_EWRITE:
|
|
2370
|
+ case CL_EDUP:
|
|
2371
|
+ case CL_ETMPFILE:
|
|
2372
|
+ case CL_ETMPDIR:
|
2368
|
2373
|
case CL_EMEM:
|
|
2374
|
+ case CL_ETIMEOUT:
|
2369
|
2375
|
cli_dbgmsg("Descriptor[%d]: cli_scanraw error %s\n", desc, cl_strerror(res));
|
2370
|
2376
|
funmap(*ctx->fmap);
|
2371
|
2377
|
ctx->fmap--;
|
...
|
...
|
@@ -2388,7 +2394,8 @@ static int magic_scandesc(int desc, cli_ctx *ctx, cli_file_t type)
|
2388
|
2388
|
cli_dbgmsg("Descriptor[%d]: Continuing after cli_scanraw reached %s\n",
|
2389
|
2389
|
desc, cl_strerror(res));
|
2390
|
2390
|
break;
|
2391
|
|
- /* Other errors should not prevent later attempts to scan */
|
|
2391
|
+ /* Other errors must not block further scans below */
|
|
2392
|
+ /* This specifically includes CL_EFORMAT & CL_EREAD */
|
2392
|
2393
|
default:
|
2393
|
2394
|
ret = res;
|
2394
|
2395
|
cli_dbgmsg("Descriptor[%d]: Continuing after cli_scanraw error %s\n",
|