You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							1.5 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../make/0001-fix-memory-area-overlap.patch | 
						|
# Copyright (C) 2010 The OpenSDE Project | 
						|
# | 
						|
# More information can be found in the files COPYING and README. | 
						|
# | 
						|
# This patch file is dual-licensed. It is available under the license the | 
						|
# patched project is licensed under, as long as it is an OpenSource license | 
						|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | 
						|
# of the GNU General Public License as published by the Free Software | 
						|
# Foundation; either version 2 of the License, or (at your option) any later | 
						|
# version. | 
						|
# --- SDE-COPYRIGHT-NOTE-END --- | 
						|
 | 
						|
bug #27148: Use of strcpy on overlapping memory areas | 
						|
http://savannah.gnu.org/bugs/?27148 | 
						|
http://cvs.savannah.gnu.org/viewvc/make/job.c?root=make&r1=1.194&r2=1.195 | 
						|
 | 
						|
2009-08-01  Paul Smith  <[email protected]> | 
						|
	* job.c (new_job): Use memmove() instead of strcpy() since both | 
						|
	pointers are in the same memory block.  Fixes Savannah bug #27148. | 
						|
	Patch by Petr Machata. | 
						|
 | 
						|
diff --git a/job.c b/job.c | 
						|
index a81cd81..3251efe 100644 | 
						|
--- a/job.c | 
						|
+++ b/job.c | 
						|
@@ -1594,7 +1594,7 @@ new_job (struct file *file) | 
						|
       /* There are no more references in this line to worry about. | 
						|
 	 Copy the remaining uninteresting text to the output.  */ | 
						|
       if (out != in) | 
						|
-	strcpy (out, in); | 
						|
+	memmove (out, in, strlen (in) + 1); | 
						|
  | 
						|
       /* Finally, expand the line.  */ | 
						|
       lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i], | 
						|
--  | 
						|
1.6.5.3 | 
						|
 | 
						|
 |