@ @ requires 8 <= size <= 1024*1024; @ requires offset <= size; @ requires \valid_read(buffer+ (0 .. size-1)); @ requires \initialized(buffer+ (0 .. size-1)); @ requires \valid(file_time); @ assigns *file_time; @*/
| 1144 | @ assigns *file_time; |
| 1145 | @*/ |
| 1146 | static void OLE_parse_filetime_entry(const char *buffer, const unsigned int size, const unsigned int offset, time_t *file_time) |
| 1147 | { |
| 1148 | uint64_t tmp; |
| 1149 | if(offset + 12 > size) |
| 1150 | { |
| 1151 | return ; |
| 1152 | } |
| 1153 | /*@ assert offset + 12 <= size; */ |
| 1154 | tmp=get64u(buffer, offset + 4); |
| 1155 | tmp/=10000000; |
| 1156 | if(tmp > (uint64_t)134774 * 24 * 3600) |
| 1157 | { |
| 1158 | tmp -= (uint64_t)134774 * 24 * 3600; |
| 1159 | *file_time=tmp; |
| 1160 | } |
| 1161 | } |
| 1162 | |
| 1163 | /*@ |
| 1164 | @ requires 8 <= size <= 1024*1024; |
no test coverage detected