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)
 | 
					        if (!pProp)
 | 
				
			||||||
            return BadAlloc;
 | 
					            return BadAlloc;
 | 
				
			||||||
        data = malloc(totalSize);
 | 
					        data = malloc(totalSize);
 | 
				
			||||||
        if (!data && len) {
 | 
					        if (totalSize) {
 | 
				
			||||||
            dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
 | 
					            if (!data) {
 | 
				
			||||||
            return BadAlloc;
 | 
					                dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
 | 
				
			||||||
 | 
					                return BadAlloc;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            memcpy(data, value, totalSize);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        memcpy(data, value, totalSize);
 | 
					 | 
				
			||||||
        pProp->propertyName = property;
 | 
					        pProp->propertyName = property;
 | 
				
			||||||
        pProp->type = type;
 | 
					        pProp->type = type;
 | 
				
			||||||
        pProp->format = format;
 | 
					        pProp->format = format;
 | 
				
			||||||
| 
						 | 
					@ -361,9 +363,11 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (mode == PropModeReplace) {
 | 
					        if (mode == PropModeReplace) {
 | 
				
			||||||
            data = malloc(totalSize);
 | 
					            data = malloc(totalSize);
 | 
				
			||||||
            if (!data && len)
 | 
					            if (totalSize) {
 | 
				
			||||||
                return BadAlloc;
 | 
					                if (!data)
 | 
				
			||||||
            memcpy(data, value, totalSize);
 | 
					                    return BadAlloc;
 | 
				
			||||||
 | 
					                memcpy(data, value, totalSize);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            pProp->data = data;
 | 
					            pProp->data = data;
 | 
				
			||||||
            pProp->size = len;
 | 
					            pProp->size = len;
 | 
				
			||||||
            pProp->type = type;
 | 
					            pProp->type = type;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue