]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix(c/array): null-terminate strings in text array loading
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 25 Nov 2022 14:48:05 +0000 (15:48 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 10 Dec 2022 13:01:55 +0000 (13:01 +0000)
psycopg_c/psycopg_c/types/array.pyx

index b42d760350b28ee64dcaed3d684adf1ed0dacdd0..9019d0736f65ee46baf0f0e88d2b83753dc97058 100644 (file)
@@ -142,7 +142,7 @@ cdef object parse_token(
             return load(b)
 
     else:
-        unesc = <char *>PyMem_Malloc(length - num_escapes)
+        unesc = <char *>PyMem_Malloc(length - num_escapes + 1)
         src = start
         tgt = unesc
         while src < end:
@@ -152,6 +152,8 @@ cdef object parse_token(
             src += 1
             tgt += 1
 
+        tgt[0] = b'\x00'
+
         try:
             if cloader is not None:
                 return cloader.cload(unesc, length - num_escapes)