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 ".." */
 | 
			
		||||
			    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