[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v20210701 05/40] tools: handle libxl__physmap_info.name properly in convert-legacy-stream


  • To: Olaf Hering <olaf@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 2 Jul 2021 16:35:24 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tpf0x1XJffsQgLTaKqZ/nNiSJRvmEJFmmAdpmrR+uYQ=; b=L5XeoRmSfYxio5XBrtX4aWFBnazWWcphZVtdtc7kSLsyghQZZoD5oCpjRoEDDCnsn0BaHNOxmSQ5/5KH9kHu66W9ro/TVMNtZxjtiGSKJvrJb2QxsfUXJyXay3mE6i8xR8habWStaL9S/egqepV8qMF9ZPlAaqCOzlGc9jW1Z+7K/ro1PWDDj5ByPvSqR4RYonML8JZuJpQ5nlhvl6ppEEuvZOPJ3CLVjgxL3wamtH21UnOEswxVXb7qGoK0Hsyd0OkK5gZy1tsULV3n/hcyOnFVcV5jJWc7VrxDLwC2WsDISQnjiDVQijSHYZoD7wmeib+ZdVLoiB05je1ioIes8g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fO1w+OdEBMESOjluxe2el3EnkiK/tK7r+REyQiaMPDQMZGnRLn8C4fmTGlP8MGuZe2iQSEDBLidJgBuJCgivIYvY261rfaXoCXbBb2a4yh8uY2hzzwCq9LW5U4kI+FUz//PSqmq98ZUFTojAzfW4XEPm0H72QonXcMcsvU+u3I1qctiIbBvIvPoY9iQCt67IFRLTvaVaX1jw/TRu3heCtipt77qenW4z6xd85TTCGH+NY8iddmVT2AwgB4/MG/alX42UX1jpE28BNL2nZD/rz4Mi01q4edAoow6foL+egxzgYGcVIzlnMqgYBFQUn//3f5mr/YX06GqsocxobB0zjw==
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Fri, 02 Jul 2021 15:35:38 +0000
  • Ironport-hdrordr: A9a23:Z4Ksh6Ajwsk9XYDlHemF55DYdb4zR+YMi2TDgXoBMSC9Ffbo8/ xG/c5rsCMd6l4qMk3I/OrsBEDuex/hHPJOjrX5Xo3SPjUO2lHJEGg41/qa/9SIIUSXndK1s5 0PT0EUMqySMbEVt6fHCKbTKada/DEqmprY4ts3bh1WPGdXV50=
  • Ironport-sdr: 1/29cVpA2oXfCqfhtd/WEHdvrfxhXutm1y+HlRoIXACK/EO2+3KcUcNdpPAms/wzbk2ug9d/J/ n4yFqdpU3WPS/Oxyd9fi0yjPntSwQP5tSifzZfMyBX5qgg5GAdSt9GutOJ1U/9MLZWbHP6+Wfi Gq4i8cLgqHr8fHZht86ON5hmVzZreB+zUUBdqGv9uv6DTtRUPK/eMvtSMJY8r8LNGQS/L2BLfY WP7wQZMNAElKazjjBmTPqZyexYpCOwFO/abyAl0OA62YsCRD5J3b+E0n0NXm32y/ZQBdeR0ER/ vtY=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 01/07/2021 10:56, Olaf Hering wrote:
> diff --git a/tools/python/scripts/convert-legacy-stream 
> b/tools/python/scripts/convert-legacy-stream
> index 66ee3d2f5d..9003ac4f6d 100755
> --- a/tools/python/scripts/convert-legacy-stream
> +++ b/tools/python/scripts/convert-legacy-stream
> @@ -336,20 +336,21 @@ def read_libxl_toolstack(vm, data):
>          if len(data) < namelen:
>              raise StreamError("Remaining data too short for physmap name")
>  
> -        name = data[:namelen]
> +        c_string = data[:namelen]
>          data = data[namelen:]
>  
>          # Strip padding off the end of name
>          if twidth == 64:
> -            name = name[:-4]
> +            c_string = c_string[:-4]
>  
> -        if name[-1] != b'\x00':
> +        name, nil = unpack("={0}sB".format(len(c_string) - 1), c_string)

This is rather invasive.  How about simply:

diff --git a/tools/python/scripts/convert-legacy-stream
b/tools/python/scripts/convert-legacy-stream
index ca93a93848ec..d4ae94c02f21 100755
--- a/tools/python/scripts/convert-legacy-stream
+++ b/tools/python/scripts/convert-legacy-stream
@@ -342,7 +342,7 @@ def read_libxl_toolstack(vm, data):
         if twidth == 64:
             name = name[:-4]
 
-        if name[-1] != b'\x00':
+        if bytearray(name)[-1] != 0:
             raise StreamError("physmap name not NUL terminated")
 
         root = b"physmap/%x" % (phys, )

which is rather more contained, and looks to work from Py2.6 and later?

~Andrew



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.