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 <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2021-02-23 15:21:13 +01:00
parent 67a710c3c3
commit 0333b11f03

View File

@ -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;