diff options
-rw-r--r-- | cap.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -121,11 +121,19 @@ int check_version_string(const char * str, int req_major, int req_minor, int req return 0; } + /* We might have encountered a FreeBSD system which + * has a mucked up version string of: + * Concurrent Versions System (CVS) '1.11.17'-FreeBSD (client/server) + * so re-test just in case + */ p += skip; if (sscanf(p, "%d.%d.%d", &major, &minor, &extra) != 3) { - debug(DEBUG_APPMSG1, "WARNING: malformed CVS version: %s", str); - return 0; + if (sscanf(p, "'%d.%d.%d'", &major, &minor, &extra) != 3) + { + debug(DEBUG_APPMSG1, "WARNING: malformed CVS version: %s", str); + return 0; + } } return (major > req_major || |