From 866a1f0923b67373701a578e98b74ab2458f74db Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Mon, 13 Jan 2014 15:42:35 +0200
Subject: [PATCH] Fix calculation of ISMN check digit.

This has always been broken, so back-patch to all supported versions.

Fabien COELHO
---
 contrib/isn/isn.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/isn/isn.c b/contrib/isn/isn.c
index be9c5cecbdb..11247449799 100644
--- a/contrib/isn/isn.c
+++ b/contrib/isn/isn.c
@@ -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);
-- 
GitLab