From: Peter Krempa Date: Tue, 23 Feb 2021 14:21:13 +0000 (+0100) Subject: util: virprocess: Use local maximum error message size X-Git-Tag: v7.2.0-rc1~226 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0333b11f03e7cc44577ea92922fe4f1fec080ba7;p=thirdparty%2Flibvirt.git util: virprocess: Use local maximum error message size Use of VIR_ERROR_MAX_LENGTH is actually misleading to the readers because it implies that the strings in virError are 1024 bytes at most. That isn't true at least for the 'message' field as it's constructed from concatenating the detail string which (was) max 1024 bytes with the string variant of the error code without limiting to 1024. Use a local copy for declaring the struct for error transport with a comment so that's obvious that it's a local decision to use 1k buffers. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/util/virprocess.c b/src/util/virprocess.c index 7a0960e337..80cf4e8838 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -1137,14 +1137,16 @@ virProcessRunInMountNamespace(pid_t pid G_GNUC_UNUSED, #ifndef WIN32 +/* We assume that error messages will fit into 1024 chars */ +# define VIR_PROCESS_ERROR_MAX_LENGTH 1024 typedef struct { int code; int domain; - char message[VIR_ERROR_MAX_LENGTH]; + char message[VIR_PROCESS_ERROR_MAX_LENGTH]; virErrorLevel level; - char str1[VIR_ERROR_MAX_LENGTH]; - char str2[VIR_ERROR_MAX_LENGTH]; - char str3[VIR_ERROR_MAX_LENGTH]; + char str1[VIR_PROCESS_ERROR_MAX_LENGTH]; + char str2[VIR_PROCESS_ERROR_MAX_LENGTH]; + char str3[VIR_PROCESS_ERROR_MAX_LENGTH]; int int1; int int2; } errorData;