Just an oversight when extract_array_assignment_list()'s second argument was
changed from 'int *' to 'size_t *'.
Marc.
diff -NRapruz -X /etc/diff.excludes bash-5.3/variables.c devel-5.3/variables.c
--- bash-5.3/variables.c 2025-06-25 13:48:04.000000000 -0600
+++ devel-5.3/variables.c 2026-01-02 18:19:30.714600450 -0700
@@ -453,7 +453,7 @@ initialize_shell_variables (char **env, int privmode)
STREQN (BASHARRAY_SUFFIX, name + char_index - BASHARRAY_SUFFLEN,
BASHARRAY_SUFFLEN) &&
*string == '(' && string[1] == '[' && string[strlen (string) - 1] ==
')')
{
- size_t namelen;
+ size_t namelen, strlength;
char *tname; /* desired imported array variable name */
namelen = char_index - BASHARRAY_PREFLEN - BASHARRAY_SUFFLEN;
@@ -461,8 +461,8 @@ initialize_shell_variables (char **env, int privmode)
tname = name + BASHARRAY_PREFLEN; /* start of variable name */
tname[namelen] = '\0'; /* now tname == varname */
- string_length = 1;
- temp_string = extract_array_assignment_list (string, &string_length);
+ strlength = 1;
+ temp_string = extract_array_assignment_list (string, &strlength);
temp_var = assign_array_from_string (tname, temp_string, 0);
FREE (temp_string);
if (temp_var && noassign_p (temp_var) == 0)
@@ -475,7 +475,7 @@ initialize_shell_variables (char **env, int privmode)
STREQN (BASHASSOC_SUFFIX, name + char_index - BASHASSOC_SUFFLEN,
BASHASSOC_SUFFLEN) &&
*string == '(' && string[1] == '[' && string[strlen (string) - 1] ==
')')
{
- size_t namelen;
+ size_t namelen, strlength;
char *tname; /* desired imported assoc variable name */
namelen = char_index - BASHASSOC_PREFLEN - BASHASSOC_SUFFLEN;
@@ -489,8 +489,8 @@ initialize_shell_variables (char **env, int privmode)
temp_var = 0;
if (temp_var)
{
- string_length = 1;
- temp_string = extract_array_assignment_list (string,
&string_length);
+ strlength = 1;
+ temp_string = extract_array_assignment_list (string, &strlength);
temp_var = assign_array_var_from_string (temp_var, temp_string,
0);
}
FREE (temp_string);