Skip to content

Commit 1d6cf1e

Browse files
author
Gonzalo Diaz
committed
[BUGFIX] Many issues "If memory allocation fails, then there is a possible null pointer dereference:" fixed.
1 parent bda1457 commit 1d6cf1e

5 files changed

Lines changed: 27 additions & 4 deletions

File tree

.github/workflows/clang-format.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ jobs:
2121
- name: Install dependencies
2222
# yamllint disable rule:line-length
2323
run: |
24-
mkdir -p /etc/apt/keyrings
24+
sudo mkdir -p /etc/apt/keyrings
2525
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key \
26-
| gpg --dearmor -o /etc/apt/keyrings/llvm-snapshot.gpg
26+
| sudo gpg --dearmor -o /etc/apt/keyrings/llvm-snapshot.gpg
2727
echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-22 main" \
28-
| tee /etc/apt/sources.list.d/llvm.list && \
28+
| sudo tee /etc/apt/sources.list.d/llvm.list && \
2929
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
3030
sudo apt-add-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main"
3131
sudo apt-get -y update
3232
sudo apt-get -y install --no-install-recommends --no-install-suggests clang-format-22
3333
sudo update-alternatives --install /usr/bin/clang-format clang-format $(which clang-format-22) 100
34-
sudo update-alternatives --set clang-format $(update-alternatives --list clang-format | grep clang-format-19)
34+
sudo update-alternatives --set clang-format $(update-alternatives --list clang-format | grep clang-format-22)
3535
# yamllint enable rule:line-length
3636
3737
- name: Check Tools

src/lib/exercises/src/hackerrank/warmup/compare_triplets.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ int *HACKERRANK_WARMUP_compareTriplets(int a_count, const int *a, int b_count,
1212

1313
*result_count = 2;
1414
int *awards = malloc(sizeof(int) * *result_count);
15+
if (awards == NULL) {
16+
return NULL;
17+
}
1518

1619
awards[0] = 0;
1720
awards[1] = 0;

src/lib/exercises/src/hackerrank/warmup/mini_max_sum.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ char *HACKERRANK_WARMUP_miniMaxSumCalculate(int arr_count, const int *arr) {
2727

2828
const int BUFFER_MAX_SIZE = 100;
2929
char *buffer = malloc(BUFFER_MAX_SIZE * sizeof(char));
30+
if (buffer == NULL) {
31+
return NULL;
32+
}
3033

3134
snprintf(buffer, BUFFER_MAX_SIZE, "%lld %lld", tsum - tmax, tsum - tmin);
3235
return buffer;

src/lib/exercises/src/hackerrank/warmup/plus_minus.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ const int BUFFER_MAX_SIZE = 10;
1111

1212
char *format_result(double number) {
1313
char *buffer = malloc(BUFFER_MAX_SIZE * sizeof(char));
14+
if (buffer == NULL) {
15+
return NULL;
16+
}
1417

1518
snprintf(buffer, BUFFER_MAX_SIZE, "%0.6lf", number);
1619
return buffer;
@@ -45,9 +48,16 @@ char **HACKERRANK_WARMUP_plusMinusCalculate(int arr_count, const int *arr) {
4548

4649
int n = 3; // Número de strings (puede ser arbitrario)
4750
char **answer = malloc(n * sizeof(char *)); // Array de punteros
51+
if (answer == NULL) {
52+
return NULL;
53+
}
4854

4955
for (i = 0; i < n; i++) {
5056
char *formatted = format_result(results[i]);
57+
if (formatted == NULL) {
58+
HACKERRANK_WARMUP_freePlusMinus(answer, i);
59+
return NULL;
60+
}
5161
answer[i] = formatted;
5262
}
5363

src/lib/exercises/src/hackerrank/warmup/staircase.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,16 @@
1010
char **HACKERRANK_WARMUP_staircaseCalculate(int n) {
1111

1212
char **answer = malloc(n * sizeof(char *)); // Array of char pointers
13+
if (answer == NULL) {
14+
return NULL;
15+
}
1316

1417
for (int i = 0; i < n; i++) {
1518
char *line = malloc((n + 1) * sizeof(char)); // Array of char values
19+
if (line == NULL) {
20+
HACKERRANK_WARMUP_freeStaircase(answer, i);
21+
return NULL;
22+
}
1623

1724
for (int j = 0; j < n; j++) {
1825
if (j < n - i - 1) {

0 commit comments

Comments
 (0)