Skip to content
Snippets Groups Projects
Commit 0fce31c2 authored by CAPACES Nicolas's avatar CAPACES Nicolas
Browse files

correction du déférencement de pointeur dans bin_to_base64

parent 16dfb3c9
No related branches found
No related tags found
No related merge requests found
......@@ -14,8 +14,8 @@ INSTALL ?= install
#---------------------
# les differents drapeaux que j'utilise pour la compilation
#---------------------
CFLAGS ?= -O0 -Wall -Wextra -Wpedantic -ggdb
LFLAGS ?= -g -fPIC -fPIE
CFLAGS ?= -O3 -Wall -Wextra -Wpedantic
LFLAGS ?= -fPIC
#flag vers la librarie personnelle
#MFLAG pour "Made Flag"
MFLAGS := -lbase64
......
......@@ -2,7 +2,7 @@
* Nom: base64.c *
* Auteur: Nicolas CAPACES *
* Date de Creation: 19/05/2024 *
* Date de Modification: 20/05/2024 *
* Date de Modification: 25/05/2024 *
*****************************************/
#include <sys/types.h>
......@@ -36,7 +36,7 @@ int bin_to_base64(const char* src, size_t len_src, char** dst, size_t len_dst, e
size_t v;
char* used_set;
free(*dst);
free(dst[0]);
if (src == NULL || len_src == 0 || len_dst == 0)
return -1;
......@@ -49,28 +49,28 @@ int bin_to_base64(const char* src, size_t len_src, char** dst, size_t len_dst, e
return -1;
}
*dst = (char*)malloc(len_dst+1);
dst[0] = (char*)malloc(len_dst+1);
if (*dst == NULL){
return -1;
}
*dst[len_dst] = '\0';
dst[0][len_dst] = '\0';
for (i=0, j=0; i<len_src; i+=3, j+=4) {
v = src[i];
v = i+1 < len_src ? v << 8 | src[i+1] : v << 8;
v = i+2 < len_src ? v << 8 | src[i+2] : v << 8;
*dst[j] = used_set[(v >> 18) & 0x3F];
*dst[j+1] = used_set[(v >> 12) & 0x3F]; //envoie un segFault, cela doit être dû à l'affectation edit: j'ai compris que c'est à cause du pointeur, *dst[1] envoie au premier charactère de src
dst[0][j] = used_set[(v >> 18) & 0x3F];
dst[0][j+1] = used_set[(v >> 12) & 0x3F]; //J'adore le C
if (i+1 < len_src) {
*dst[j+2] = used_set[(v >> 6) & 0x3F];
dst[0][j+2] = used_set[(v >> 6) & 0x3F];
} else {
*dst[j+2] = pad;
dst[0][j+2] = pad;
}
if (i+2 < len_src) {
*dst[j+3] = used_set[v & 0x3F];
dst[0][j+3] = used_set[v & 0x3F];
} else {
*dst[j+3] = pad;
dst[0][j+3] = pad;
}
}
......
......@@ -2,7 +2,7 @@
* Nom: base64.h *
* Auteur: Nicolas CAPACES *
* Date de Creation: 19/05/2024 *
* Date de Modification: 20/05/2024 *
* Date de Modification: 25/05/2024 *
*****************************************/
#ifndef BASE_64_H_
......
......@@ -2,7 +2,7 @@
* Nom: main.c *
* Auteur: Nicolas CAPACES *
* Date de Creation: 19/05/2024 *
* Date de Modification: 20/05/2024 *
* Date de Modification: 25/05/2024 *
*****************************************/
#include <stdio.h>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment