dix: dixChangeWindowProperty: don't call memcpy if malloc failed
It shouldn't matter, since it would have a length of 0, but it
clears warnings from gcc 14.1:
../dix/property.c: In function ‘dixChangeWindowProperty’:
../dix/property.c:287:9: warning: use of possibly-NULL ‘data’ where
 non-null expected [CWE-690] [-Wanalyzer-possible-null-argument]
  287 |         memcpy(data, value, totalSize);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../dix/property.c:324:13: warning: use of possibly-NULL ‘data’ where
 non-null expected [CWE-690] [-Wanalyzer-possible-null-argument]
  324 |             memcpy(data, value, totalSize);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1673>
			
			
This commit is contained in:
		
							parent
							
								
									951c6ac12c
								
							
						
					
					
						commit
						e99a8f18ef
					
				| 
						 | 
				
			
			@ -324,11 +324,13 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
 | 
			
		|||
        if (!pProp)
 | 
			
		||||
            return BadAlloc;
 | 
			
		||||
        data = malloc(totalSize);
 | 
			
		||||
        if (!data && len) {
 | 
			
		||||
            dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
 | 
			
		||||
            return BadAlloc;
 | 
			
		||||
        if (totalSize) {
 | 
			
		||||
            if (!data) {
 | 
			
		||||
                dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
 | 
			
		||||
                return BadAlloc;
 | 
			
		||||
            }
 | 
			
		||||
            memcpy(data, value, totalSize);
 | 
			
		||||
        }
 | 
			
		||||
        memcpy(data, value, totalSize);
 | 
			
		||||
        pProp->propertyName = property;
 | 
			
		||||
        pProp->type = type;
 | 
			
		||||
        pProp->format = format;
 | 
			
		||||
| 
						 | 
				
			
			@ -361,9 +363,11 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
 | 
			
		|||
 | 
			
		||||
        if (mode == PropModeReplace) {
 | 
			
		||||
            data = malloc(totalSize);
 | 
			
		||||
            if (!data && len)
 | 
			
		||||
                return BadAlloc;
 | 
			
		||||
            memcpy(data, value, totalSize);
 | 
			
		||||
            if (totalSize) {
 | 
			
		||||
                if (!data)
 | 
			
		||||
                    return BadAlloc;
 | 
			
		||||
                memcpy(data, value, totalSize);
 | 
			
		||||
            }
 | 
			
		||||
            pProp->data = data;
 | 
			
		||||
            pProp->size = len;
 | 
			
		||||
            pProp->type = type;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue