trying to patch segfault mmap

This commit is contained in:
Xamora 2025-02-19 22:15:36 +01:00
parent 40e3e0543a
commit 468341d34e
6 changed files with 28 additions and 10 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
build
*.so
main

View file

@ -7,3 +7,4 @@
-iquoteinc
-iquotelib
-fPIC
-g

View file

@ -4,9 +4,9 @@
#include <unistd.h>
#include <sys/resource.h>
/*typedef struct {
typedef struct {
u16 byte;
} meta_t ;*/
} meta_t ;
void free(void *ptr);
void *malloc(size_t size);

12
main.c
View file

@ -1,9 +1,15 @@
#include <stddef.h>
#include "lib/libft/libft.h"
#include "inc/malloc.h"
#include "lib/ft_printf/ft_printf.h"
int
main(void) {
void* test = malloc(4);
(void)test;
char* test = malloc(11);
if (!test)
return 1;
for (int i = 0; i < 11; i++)
test[i] = i + 32;
ft_printf(test);
free(test);
return 0;
}

View file

@ -1,2 +1,4 @@
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
gcc main.c -L. -lft_malloc -o main
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/
gcc main.c -L. -lft_malloc -g -o main lib/lib.a
./main
#rm main

View file

@ -1,12 +1,20 @@
#include <stdio.h>
#include <errno.h>
char *memory = nullptr;
void *
malloc(size_t size) {
if (!memory)
memory = mmap(nullptr, 4096 * 10, 0, PROT_READ | PROT_WRITE, 0, 0);
if (!memory) {
memory = mmap(nullptr, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, 0, 0);
if (memory == MAP_FAILED) {
printf("%d\n", errno);
//ft_printf_fd(2, "Error mmap\n");
//return NULL;
}
}
for (size_t i = 0; i < size; i++) {
ft_printf("test");
//ft_printf("test");
}
return memory;