| 7062 | } |
| 7063 | |
| 7064 | static bool cli_checksum_line_references_archive(const unsigned char *line, size_t line_length, |
| 7065 | const char *archive_name, |
| 7066 | size_t archive_name_length) { |
| 7067 | if (!line || !archive_name || line_length < archive_name_length || |
| 7068 | memcmp(line + line_length - archive_name_length, archive_name, archive_name_length) != 0) { |
| 7069 | return false; |
| 7070 | } |
| 7071 | size_t prefix_length = line_length - archive_name_length; |
| 7072 | if (prefix_length == 0) { |
| 7073 | return true; |
| 7074 | } |
| 7075 | unsigned char separator = line[prefix_length - 1U]; |
| 7076 | return separator == (unsigned char)' ' || separator == (unsigned char)'\t' || |
| 7077 | separator == (unsigned char)'*'; |
| 7078 | } |
| 7079 | |
| 7080 | static bool cli_checksum_line_digest(const unsigned char *line, size_t line_length, |
| 7081 | const char *archive_name, size_t archive_name_length, |
no outgoing calls
no test coverage detected