fix: fixed segfault
							parent
							
								
									a153c4e22d
								
							
						
					
					
						commit
						01eb5ece55
					
				
							
								
								
									
										5
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										5
									
								
								Makefile
								
								
								
								
							| 
						 | 
					@ -43,6 +43,11 @@ prod: cmake-release
 | 
				
			||||||
run: build
 | 
					run: build
 | 
				
			||||||
	@ LANDER_DATA_DIR=data LANDER_BASE_URL=http://localhost:18080/ LANDER_API_KEY=test ./build/Debug/lander
 | 
						@ LANDER_DATA_DIR=data LANDER_BASE_URL=http://localhost:18080/ LANDER_API_KEY=test ./build/Debug/lander
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: valgrind
 | 
				
			||||||
 | 
					valgrind: build
 | 
				
			||||||
 | 
						@ LANDER_DATA_DIR=data LANDER_BASE_URL=http://localhost:18080/ LANDER_API_KEY=test \
 | 
				
			||||||
 | 
							valgrind --tool=memcheck --error-exitcode=1 --track-origins=yes --leak-check=full ./build/Debug/lander
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: gdb
 | 
					.PHONY: gdb
 | 
				
			||||||
gdb: build
 | 
					gdb: build
 | 
				
			||||||
	@ LANDER_DATA_DIR=data LANDER_BASE_URL=http://localhost:18080/ LANDER_API_KEY=test gdb --args ./build/Debug/lander
 | 
						@ LANDER_DATA_DIR=data LANDER_BASE_URL=http://localhost:18080/ LANDER_API_KEY=test gdb --args ./build/Debug/lander
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,10 +28,9 @@ TrieExitCode trie_init(Trie **trie_ptr, const char *file_path) {
 | 
				
			||||||
  trie->root = tnode_init();
 | 
					  trie->root = tnode_init();
 | 
				
			||||||
  pthread_rwlock_init(&trie->lock, NULL);
 | 
					  pthread_rwlock_init(&trie->lock, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *trie_ptr = trie;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (file_path == NULL) {
 | 
					  if (file_path == NULL) {
 | 
				
			||||||
    trie->file_path = NULL;
 | 
					    trie->file_path = NULL;
 | 
				
			||||||
 | 
					    *trie_ptr = trie;
 | 
				
			||||||
    return Ok;
 | 
					    return Ok;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +49,7 @@ TrieExitCode trie_init(Trie **trie_ptr, const char *file_path) {
 | 
				
			||||||
  Entry *entry;
 | 
					  Entry *entry;
 | 
				
			||||||
  char *string;
 | 
					  char *string;
 | 
				
			||||||
  int i, j;
 | 
					  int i, j;
 | 
				
			||||||
  int entries = 0;
 | 
					  TrieExitCode status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  while (fgets(buffer, 8192, fp)) {
 | 
					  while (fgets(buffer, 8192, fp)) {
 | 
				
			||||||
    i = 0;
 | 
					    i = 0;
 | 
				
			||||||
| 
						 | 
					@ -76,13 +75,18 @@ TrieExitCode trie_init(Trie **trie_ptr, const char *file_path) {
 | 
				
			||||||
    buffer[j] = '\0';
 | 
					    buffer[j] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    entry = entry_new(type, buffer + i + 3);
 | 
					    entry = entry_new(type, buffer + i + 3);
 | 
				
			||||||
    trie_add_no_lock(trie, buffer, entry);
 | 
					    status = trie_add_no_lock(trie, buffer, entry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    entries++;
 | 
					    if (status != Ok) {
 | 
				
			||||||
 | 
					      trie_free(trie);
 | 
				
			||||||
 | 
					      return status;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fclose(fp);
 | 
					  fclose(fp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *trie_ptr = trie;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return Ok;
 | 
					  return Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -266,6 +270,7 @@ TrieExitCode trie_add_no_lock(Trie *trie, const char *string, Entry *entry) {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (*child_node_ptr)->represents = true;
 | 
					  (*child_node_ptr)->represents = true;
 | 
				
			||||||
 | 
					  (*child_node_ptr)->entry = entry;
 | 
				
			||||||
  trie->size++;
 | 
					  trie->size++;
 | 
				
			||||||
  return Ok;
 | 
					  return Ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue