чување c01ec23d384713be9039c7a5cfdbf0298e0de56b
родитељ 05c9e93ba8f529262e825ceb4e0af9268a1a66ac
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sun, 9 Jun 2024 18:36:01 +0200
sled.c: free rfn; copy exact amount to state.real_filename
Diffstat:
измењених датотека: 1, додавања: 6(+), брисања: 4(-)
diff --git a/sled.c b/sled.c
@@ -2621,6 +2621,7 @@ main(int argc, char** argv)
{
free(filename);
free(dir);
+ free(rfn);
return print_error(1,
"Allocation failed (out of "
"memory?)");
@@ -2636,13 +2637,14 @@ main(int argc, char** argv)
if (*rfn == '/') /* rfn is absolute */
MEMCCPY(state.real_filename, rfn,
limits[L_PATH_MAX], temp);
- else /* rfn is relative */
+ else /* rfn is relative */
{
MEMCCPY(state.real_filename, dir,
-limits[L_PATH_MAX], temp);
- *(temp-1) = '/';
+ limits[L_PATH_MAX], temp);
+ *(temp - 1) = '/';
MEMCCPY_EXT(temp, state.real_filename, rfn,
-limits[L_PATH_MAX], temp);
+ limits[L_PATH_MAX] - state.rfn_len - 1,
+ temp);
state.rfn_len = temp - state.real_filename - 1;
}
free(rfn);