aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-07-10 18:22:18 +0200
committerJohn Ankarström <john@ankarstrom.se>2021-07-10 18:23:02 +0200
commit4c4fd309cf5c0ea28c17c9b90ebe073a66dcaf72 (patch)
treecc50bf7be9881c2f2090249c5a15821ab0a41510
parentf731d36d9229a57844551ebcfe78c91a1e9a37ec (diff)
downloadre-name-4c4fd309cf5c0ea28c17c9b90ebe073a66dcaf72.tar.gz
name.c: Do not read more than MAXFILES lines
-rw-r--r--name.c4
-rw-r--r--re.114
2 files changed, 13 insertions, 5 deletions
diff --git a/name.c b/name.c
index e9c13d7..a98c051 100644
--- a/name.c
+++ b/name.c
@@ -64,13 +64,13 @@ usage: fprintf(stderr, "usage: %s [-x]\n", name);
err(1, "fopen");
/* Read original file names. */
- for (i = 0; fgets(tmp, MAXLINE, fp); i++) {
+ for (i = 0; i < MAXFILES && fgets(tmp, MAXLINE, fp); i++) {
tmp[strcspn(tmp, "\n")] = 0;
strcpy(froms[i], tmp);
}
/* Read new file names. */
- for (j = 0; fgets(tmp, MAXLINE, stdin); j++) {
+ for (j = 0; j < MAXFILES && fgets(tmp, MAXLINE, stdin); j++) {
tmp[strcspn(tmp, "\n")] = 0;
strcpy(tos[j], tmp);
}
diff --git a/re.1 b/re.1
index 1bb1ae0..5e0d93d 100644
--- a/re.1
+++ b/re.1
@@ -69,10 +69,18 @@ are written by John Ankarström
.Sh BUGS
.Pp
.Nm re
-and
+does not support file names containing newlines
+and will exit with an error if provided with such file names.
+.Pp
.Nm name
-do not support file names containing newlines
-and will exit if provided with such file names.
+uses hard-coded array sizes:
+at most, one hundred 255-character file names can be processed.
+While overflows are correctly handled,
+they are silently ignored.
+When processing very many or very long file names,
+the use of the
+.Fl x
+flag is not recommended.
.Pp
The temporary file is placed at
.Pa /var/tmp/re.$PPID ,