The Samba-Bugzilla – Bug 11382
elapsed time calculation does not account for time function possibly returning -1
Last modified: 2016-04-17 23:13:28 UTC
starttime currently initialized on line 1529 of main.c and endtime currently initialized on line 222 of main.c, both of which are used on line 344 are used in a manner that does not handle that time(NULL) can return -1.
Out of curiosity, I did try reading through the glibc source code for that function to find it currently does return -1, and at the glibc level, that's all that the time function does unless appropriate bridging to a kernel is implemented. I did not take the time to try looking at other libc implementations or to see under what conditions the linux kernel might return -1.
As I only see one usage on line 344, if one of those two values comes back as -1 for some reason, perhaps that information line should be ommitted or replaced since the statistic trying to be printed would not be a valid statistic if one of the two time() calls returned -1.
Glibc documents the -1 possibility at http://www.gnu.org/software/libc/manual/html_node/Simple-Calendar-Time.html#Simple-Calendar-Time
Microsoft documents the -1 possibility for their libc implementations as well at https://msdn.microsoft.com/en-us/library/1f4c8f33.aspx?f=255&MSPPError=-2147217396
Created attachment 11958 [details]
patch indicating unknown bytes/sec if time() returned -1
I have checked-in a fix that outputs "UNKNOWN" for the bytes/sec value if either the start or end time is -1 (see commit d1c80404fece1cd90631ebb687e050deb18acb31). Thanks for the report!