mirror of
				https://gitlab.com/libvirt/libvirt.git
				synced 2025-11-04 12:24:23 +03:00 
			
		
		
		
	uuid: fix possible non-terminated string
Error: STRING_NULL:
/libvirt/src/util/uuid.c:273:
string_null_argument: Function "getDMISystemUUID" does not terminate string "*dmiuuid".
/libvirt/src/util/uuid.c:241:
string_null_argument: Function "saferead" fills array "*uuid" with a non-terminated string.
/libvirt/src/util/util.c:101:
string_null_argument: Function "read" fills array "*buf" with a non-terminated string.
/libvirt/src/util/uuid.c:274:
string_null: Passing unterminated string "dmiuuid" to a function expecting a null-terminated string.
/libvirt/src/util/uuid.c:138:
var_assign_parm: Assigning: "cur" = "uuidstr". They now point to the same thing.
/libvirt/src/util/uuid.c:164:
string_null_sink_loop: Searching for null termination in an unterminated array "cur".
(cherry picked from commit b4586051ec)
			
			
This commit is contained in:
		
				
					committed by
					
						
						Cole Robinson
					
				
			
			
				
	
			
			
			
						parent
						
							2b25ea3e15
						
					
				
				
					commit
					cf2d303d0c
				
			@@ -238,7 +238,8 @@ getDMISystemUUID(char *uuid, int len)
 | 
			
		||||
    while (paths[i]) {
 | 
			
		||||
        int fd = open(paths[i], O_RDONLY);
 | 
			
		||||
        if (fd >= 0) {
 | 
			
		||||
            if (saferead(fd, uuid, len) == len) {
 | 
			
		||||
            if (saferead(fd, uuid, len - 1) == len - 1) {
 | 
			
		||||
                uuid[len - 1] = '\0';
 | 
			
		||||
                VIR_FORCE_CLOSE(fd);
 | 
			
		||||
                return 0;
 | 
			
		||||
            }
 | 
			
		||||
@@ -270,7 +271,7 @@ virSetHostUUIDStr(const char *uuid)
 | 
			
		||||
 | 
			
		||||
    if (!uuid) {
 | 
			
		||||
        memset(dmiuuid, 0, sizeof(dmiuuid));
 | 
			
		||||
        if (!getDMISystemUUID(dmiuuid, sizeof(dmiuuid) - 1)) {
 | 
			
		||||
        if (!getDMISystemUUID(dmiuuid, sizeof(dmiuuid))) {
 | 
			
		||||
            if (!virUUIDParse(dmiuuid, host_uuid))
 | 
			
		||||
                return 0;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user