Hi Micah,

Thanks for getting back to me.

Just so you know, I also received an email (off-list) from Tom McCourt about 
the same issue.

Unfortunately I don't know what files are causing the issue because it seems to 
stop at a different point in the scan every time. Sometimes (rarely) the scan 
will even run to completion without giving the error.

I'll run the scans again a few times this evening and pick out any files it 
stops on.

Lastly, as requested, below is my patch for switch statement. (odd. I just 
noticed the CL_ESTAT case above ESEEK, has a comment at the end. That's 
unintentional)

Thanks
Mark

diff -Naurw clamav-0.99.2_clean/libclamav/scanners.c 
clamav-0.99.2/libclamav/scanners.c
--- clamav-0.99.2_clean/libclamav/scanners.c    2016-04-22 16:02:19.000000000 
+0100
+++ clamav-0.99.2/libclamav/scanners.c  2016-10-17 16:13:57.000000000 +0100
@@ -3214,8 +3340,8 @@
            switch(res) {
                /* List of scan halts, runtime errors only! */
                case CL_EUNLINK:
-               case CL_ESTAT:
-               case CL_ESEEK:
+               case CL_ESTAT://
+//             case CL_ESEEK:
                case CL_EWRITE:
                case CL_EDUP:
                case CL_ETMPFILE:
@@ -3242,6 +3368,11 @@
                    cli_dbgmsg("Descriptor[%d]: Continuing after cli_scanraw 
reached %s\n",
                        fmap_fd(*ctx->fmap), cl_strerror(res));
                    break;
+               case CL_ESEEK:
+                       res = CL_CLEAN;
+                   ret = res;
+                   cli_errmsg("Descriptor[%d]: Continuing after cli_scanraw 
SEEK error %s\n", fmap_fd(*ctx->fmap), cl_strerror(res));
+                       break;
                /* Other errors must not block further scans below
                 * This specifically includes CL_EFORMAT & CL_EREAD & CL_EUNPACK
                 * Malformed/truncated files could report as any of these three.


> On 30 Oct 2017, at 4:36 pm, Micah Snyder (micasnyd) <micas...@cisco.com> 
> wrote:
> 
> Hi Mark,
> 
> I'm curious if there are any particular files that it scans that causes a 
> seek to fail / causes the CL_ESEEK error to bubble up to that switch 
> statement in magic_scandesc().  I wouldn't be surprised if an invalid offset 
> in a file header caused a seek to an invalid offset.  I don't know if APFS 
> handles seeks to offsets outside of the actual file differently than other 
> file systems.  What is more typical is a read error if you seek outside of 
> the file and then read.  Anyhow, if you can identify any samples that cause 
> the issue I'd like to test with it. 
> 
> Can you send us your patch to tweak the switch statement for review?  I agree 
> that a seek error in one file shouldn't halt the entire scan.   
> 
> Cheers,
> Micah
> 
> Micah Snyder
> Software Engineer
> Talos Intelligence
> Cisco Systems, Inc.
> 
> -----Original Message-----
> From: clamav-devel [mailto:clamav-devel-boun...@lists.clamav.net] On Behalf 
> Of Mark Allan
> Sent: Friday, October 27, 2017 10:44 AM
> To: ClamAV Development <clamav-devel@lists.clamav.net>
> Subject: [Clamav-devel] Why is error 13 fatal?
> 
> Hi there,
> 
> For a while now, ClamAV 0.99.2 has been terminating unexpectedly with error 
> 13 when running on the latest version of OS X (macOS 10.13) but only on 
> drives formatted with the new APFS, so I chalked it up to an APFS issue and 
> reported it to Apple.  Today, however, I received a report of the same thing 
> from someone whose hard drive is formatted with the old standard HFS+.
> 
> There's nothing of note in the scan output, even when run with --debug, and 
> it gives the error at a different point every time.  Sometimes it occurs 
> after a couple of minutes, sometimes it can be an hour into the scan.
> 
> I've had a look at the ClamAV source to see what's causing error 13 and it 
> seems to correspond to CL_ESEEK.  Looking in libclamav/scanners.c, I can see 
> a switch statement that causes the scan to abort when the result from 
> cli_scanraw(...) is CL_ESEEK.
> 
> Can anyone think why the error would be occurring, and is there a particular 
> reason why experiencing error 13 on one file should cause the rest of the 
> scan to be aborted?
> 
> Finally, is it safe to tweak that switch statement to log the error and 
> continue scanning rather than stopping?  It appears to work, but I'm not sure 
> what knock-on effect it might have.
> 
> Many thanks
> Mark
> 
> _______________________________________________
> http://lurker.clamav.net/list/clamav-devel.html
> Please submit your patches to our Bugzilla: http://bugs.clamav.net
> 
> http://www.clamav.net/contact.html#ml
> _______________________________________________
> http://lurker.clamav.net/list/clamav-devel.html
> Please submit your patches to our Bugzilla: http://bugs.clamav.net
> 
> http://www.clamav.net/contact.html#ml

_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net

http://www.clamav.net/contact.html#ml

Reply via email to