fixed a potential security flaw
This commit is contained in:
		
							parent
							
								
									b6b2f584ec
								
							
						
					
					
						commit
						b8bccb4ac5
					
				
							
								
								
									
										8
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								client.c
									
									
									
									
									
								
							@ -365,16 +365,18 @@ updatetitle(Client *c) {
 | 
				
			|||||||
		XGetWMName(dpy, c->win, &name);
 | 
							XGetWMName(dpy, c->win, &name);
 | 
				
			||||||
	if(!name.nitems)
 | 
						if(!name.nitems)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	if(name.encoding == XA_STRING)
 | 
						if(name.encoding == XA_STRING) {
 | 
				
			||||||
		strncpy(c->name, (char *)name.value, sizeof c->name);
 | 
							strncpy(c->name, (char *)name.value, sizeof c->name - 1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	else {
 | 
						else {
 | 
				
			||||||
		if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
 | 
							if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
 | 
				
			||||||
		&& n > 0 && *list)
 | 
							&& n > 0 && *list)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			strncpy(c->name, *list, sizeof c->name);
 | 
								strncpy(c->name, *list, sizeof c->name - 1);
 | 
				
			||||||
			XFreeStringList(list);
 | 
								XFreeStringList(list);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						c->name[sizeof c->name - 1] = '\0';
 | 
				
			||||||
	XFree(name.value);
 | 
						XFree(name.value);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user