fixed nodelist_open memory leak. thnx to valgrind
This commit is contained in:
		
							parent
							
								
									f9f87b7f18
								
							
						
					
					
						commit
						2944c573e7
					
				| @ -289,7 +289,7 @@ s_nodelist *nodelist_open(const char *dir, char *name, int mode) | ||||
| 	      * is a mask, and try to find the latest nodelist for | ||||
| 	      * this mask. If we find it, then we change "name" | ||||
| 	      * parameter. | ||||
| 	      * If not, we do logeer | ||||
| 	      * If not, we do logerr | ||||
| 	      * | ||||
| 	      * TODO: as in qico, do mask-search not case-sentesive | ||||
| 	      */ | ||||
| @ -307,29 +307,29 @@ s_nodelist *nodelist_open(const char *dir, char *name, int mode) | ||||
| 	     else | ||||
| 	     { | ||||
| 		   | ||||
| 		  strncpy(tmpname, name, sizeof(tmpname)); | ||||
| 		  strnxcpy(tmpname, name, sizeof(tmpname)); | ||||
| 		  struct stat ndfile; | ||||
| 		  time_t lasttime = 0; | ||||
| 		  while( (ndir = readdir(ndirstream)) ) | ||||
| 		  { | ||||
| 		       strncpy(tmpseek, ndir->d_name, sizeof(tmpseek)); | ||||
| 		       strnxcpy(tmpseek, ndir->d_name, sizeof(tmpseek)); | ||||
| 		       if ( strlen(tmpseek) < 3 )   /* Checking for */ | ||||
| 			    continue;               /* "." and ".." */ | ||||
| 
 | ||||
| 		       if( strlen(tmpseek) == strlen(tmpname) ) | ||||
| 		       { | ||||
| 			    if( (strncmp(tmpseek, tmpname, (strlen(tmpseek)-3) ) == 0) ) | ||||
| 			    if( (strncmp(tmpseek, tmpname, strlen(tmpseek)-3 ) == 0) ) | ||||
| 			    { | ||||
| 				  | ||||
| 				 strncpy(tmpseekdir, dir, sizeof(tmpseekdir)); | ||||
| 				 strncat(tmpseekdir, tmpseek, sizeof(tmpseekdir)); | ||||
| 				 strnxcpy(tmpseekdir, dir, sizeof(tmpseekdir)); | ||||
| 				 strnxcat(tmpseekdir, tmpseek, sizeof(tmpseekdir)); | ||||
| 				  | ||||
| 				 if( (stat(tmpseekdir, &ndfile)) == 0 ) | ||||
| 				 { | ||||
| 				      if( ndfile.st_ctime > lasttime ) | ||||
| 				      { | ||||
| 					   lasttime = ndfile.st_ctime; | ||||
| 					   strncpy(name, tmpseek, MAX_NAME-strlen(tmpseek)); | ||||
| 					   strcpy(name, tmpseek); | ||||
| 				      } | ||||
| 				 } | ||||
| 			    } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user