summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2026-05-07 23:56:19 +0200
committerMikael Magnusson <mikachu@gmail.com>2026-05-16 18:28:27 +0200
commit795f2ff0535800f955df246a620d8d0fa8a98bd7 (patch)
tree7beb7a5279b4de77c62be014d6c3cef45a574691
parent54533: _gcc: fix some funny autogenerated artifacts and other typos (diff)
downloadzsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar.gz
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar.bz2
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar.lz
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar.xz
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.tar.zst
zsh-795f2ff0535800f955df246a620d8d0fa8a98bd7.zip
54548: zftp: fix some mistakes
The freesession function randomly clearing the current session instead of the passed section is probably not great. The h_errno definition is repeated just above identically, which I would assume is a compile time error for anyone who has USE_LOCAL_H_ERRNO set.
-rw-r--r--ChangeLog2
-rw-r--r--Src/Modules/zftp.c18
2 files changed, 9 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 14f8f782c..61124254e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2026-05-16 Mikael Magnusson <mikachu@gmail.com>
+ * 54548: Src/Modules/zftp.c: zftp: fix some mistakes
+
* 54533: Completion/Unix/Command/_gcc: _gcc: fix some funny
autogenerated artifacts and other typos
diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c
index 230ad86f6..ecabf3430 100644
--- a/Src/Modules/zftp.c
+++ b/Src/Modules/zftp.c
@@ -82,10 +82,6 @@ union zftp_sockaddr {
#endif
};
-#ifdef USE_LOCAL_H_ERRNO
-int h_errno;
-#endif
-
/*
* For FTP block mode
*
@@ -119,8 +115,8 @@ struct zfheader {
enum {
ZFHD_MARK = 16, /* restart marker */
ZFHD_ERRS = 32, /* suspected errors in block */
- ZFHD_EOFB = 64, /* block is end of record */
- ZFHD_EORB = 128 /* block is end of file */
+ ZFHD_EOFB = 64, /* block is end of file */
+ ZFHD_EORB = 128 /* block is end of record */
};
typedef int (*readwrite_t)(int, char *, off_t, int);
@@ -2102,7 +2098,7 @@ zftp_params(UNUSED(char *name), char **args, UNUSED(int flags))
/* maybe user CTRL-c'd in the middle somewhere */
for (aptr = newarr; *aptr; aptr++)
zsfree(*aptr);
- zfree(newarr, len+1);
+ zfree(newarr, (len+1)*sizeof(char *));
return 1;
}
if (zfsess->userparams)
@@ -2191,7 +2187,7 @@ zftp_login(char *name, char **args, UNUSED(int flags))
int cnt;
for (cnt = 0; *args; args++)
cnt++;
- zwarnnam(name, "warning: %d command arguments not used\n", cnt);
+ zwarnnam(name, "warning: %d command arguments not used", cnt);
}
zfstatusp[zfsessno] |= ZFST_LOGI;
zfsetparam("ZFTP_USER", ztrdup(user), ZFPM_READONLY);
@@ -2480,7 +2476,7 @@ zftp_mode(char *name, char **args, UNUSED(int flags))
cmd[5] = (char) nt;
if (zfsendcmd(cmd) > 2)
return 1;
- zfstatusp[zfsessno] &= ZFST_MMSK;
+ zfstatusp[zfsessno] &= ~ZFST_MMSK;
zfstatusp[zfsessno] |= (nt == 'S') ? ZFST_STRE : ZFST_BLOC;
zfsetparam("ZFTP_MODE", ztrdup(str), ZFPM_READONLY);
return 0;
@@ -2875,10 +2871,10 @@ freesession(Zftp_session sptr)
{
char **ps, **pd;
zsfree(sptr->name);
- for (ps = zfparams, pd = zfsess->params; *ps; ps++, pd++)
+ for (ps = zfparams, pd = sptr->params; *ps; ps++, pd++)
if (*pd)
zsfree(*pd);
- zfree(zfsess->params, sizeof(zfparams));
+ zfree(sptr->params, sizeof(zfparams));
if (sptr->userparams)
freearray(sptr->userparams);
zfree(sptr, sizeof(struct zftp_session));