Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix calculation of ISMN check digit.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 13 Jan 2014 13:42:35 +0000 (15:42 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 13 Jan 2014 13:43:59 +0000 (15:43 +0200)
This has always been broken, so back-patch to all supported versions.

Fabien COELHO

contrib/isn/isn.c

index 3db6b84bb8d3a56f21cd71b10f68eef18599e5a3..c4e2333a9a933acd79275d89223e9407c80ab8d1 100644 (file)
@@ -827,7 +827,7 @@ string2ean(const char *str, bool errorOK, ean13 *result,
        case ISMN:
            strncpy(buf, "9790", 4);    /* this isn't for sure yet, for now
                                         * ISMN it's only 9790 */
-           valid = (valid && ((rcheck = checkdig(buf + 3, 10)) == check || magic));
+           valid = (valid && ((rcheck = checkdig(buf, 13)) == check || magic));
            break;
        case ISBN:
            strncpy(buf, "978", 3);