summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/open_plugin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/open_plugin.c b/apps/open_plugin.c
index 45dd7cdd2c..58c3058fce 100644
--- a/apps/open_plugin.c
+++ b/apps/open_plugin.c
@@ -155,10 +155,14 @@ static int op_update_dat(struct open_plugin_entry_t *entry, bool clear)
155 /* Only read the hash lang id and checksum */ 155 /* Only read the hash lang id and checksum */
156 uint32_t hash_langid_csum[3] = {0}; 156 uint32_t hash_langid_csum[3] = {0};
157 const off_t hlc_sz = sizeof(hash_langid_csum); 157 const off_t hlc_sz = sizeof(hash_langid_csum);
158
159 uint32_t csum = open_plugin_csum +
160 (lang_id <= OPEN_PLUGIN_LANG_INVALID ? 0 : LANG_LAST_INDEX_IN_ARRAY);
161
158 while (read(fd, &hash_langid_csum, hlc_sz) == hlc_sz) 162 while (read(fd, &hash_langid_csum, hlc_sz) == hlc_sz)
159 { 163 {
160 if ((hash_langid_csum[0] == hash || (int32_t)hash_langid_csum[1] == lang_id) && 164 if ((hash_langid_csum[0] == hash || (int32_t)hash_langid_csum[1] == lang_id) &&
161 hash_langid_csum[2] == open_plugin_csum) 165 hash_langid_csum[2] == csum)
162 { 166 {
163 logf("OP update *Entry Exists* hash: %x langid: %d", 167 logf("OP update *Entry Exists* hash: %x langid: %d",
164 hash_langid_csum[0], (int32_t)hash_langid_csum[1]); 168 hash_langid_csum[0], (int32_t)hash_langid_csum[1]);