Fixed memory allocation mistake, now checks return value of fread in DTSC::File::seek_time
This commit is contained in:
		
							parent
							
								
									1610a6b2f3
								
							
						
					
					
						commit
						ebdb2f32d5
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -574,7 +574,7 @@ DTSC::File::operator bool() const {
 | 
			
		|||
/// Open a filename for DTSC reading/writing.
 | 
			
		||||
/// If create is true and file does not exist, attempt to create.
 | 
			
		||||
DTSC::File::File(std::string filename, bool create) {
 | 
			
		||||
  buffer = malloc(4);
 | 
			
		||||
  buffer = malloc(8);
 | 
			
		||||
  if (create) {
 | 
			
		||||
    F = fopen(filename.c_str(), "w+b");
 | 
			
		||||
    if (!F) {
 | 
			
		||||
| 
						 | 
				
			
			@ -985,7 +985,10 @@ bool DTSC::File::seek_time(unsigned int ms, int trackNo, bool forceSeek) {
 | 
			
		|||
    seek_bpos(tmpPos.bytePos);
 | 
			
		||||
    //read the header
 | 
			
		||||
    char header[20];
 | 
			
		||||
    fread((void *)header, 20, 1, F);
 | 
			
		||||
    if (fread((void *)header, 20, 1, F) != 1){
 | 
			
		||||
      DEBUG_MSG(DLVL_WARN, "Could not read header from file. Much sadface.");
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
    //check if packetID matches, if not, skip size + 8 bytes.
 | 
			
		||||
    int packSize = ntohl(((int *)header)[1]);
 | 
			
		||||
    int packID = ntohl(((int *)header)[2]);
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,7 +1023,7 @@ bool DTSC::File::seek_time(unsigned int ms) {
 | 
			
		|||
  currentPositions.clear();
 | 
			
		||||
  if (selectedTracks.size()) {
 | 
			
		||||
    for (std::set<int>::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++) {
 | 
			
		||||
      seek_time(ms, (*it));
 | 
			
		||||
      seek_time(ms, (*it), true);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue