mercurial/obsolete.py
changeset 34407 b6692ba7d5b0
parent 34388 ddcef6d0b0ef
child 34413 014d467f9d08
--- a/mercurial/obsolete.py	Sun Oct 01 03:31:32 2017 -0700
+++ b/mercurial/obsolete.py	Sun Oct 01 12:54:35 2017 +0100
@@ -416,6 +416,14 @@
     for key, value in metadata:
         lk = len(key)
         lv = len(value)
+        if lk > 255:
+            msg = ('obsstore metadata key cannot be longer than 255 bytes'
+                   ' (key "%s" is %u bytes)') % (key, lk)
+            raise error.ProgrammingError(msg)
+        if lv > 255:
+            msg = ('obsstore metadata value cannot be longer than 255 bytes'
+                   ' (value "%s" for key "%s" is %u bytes)') % (value, key, lv)
+            raise error.ProgrammingError(msg)
         data.append(lk)
         data.append(lv)
         totalsize += lk + lv