aboutsummaryrefslogtreecommitdiff
path: root/graphics/dc20ctrl/files/patch-ah
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/dc20ctrl/files/patch-ah')
-rw-r--r--graphics/dc20ctrl/files/patch-ah84
1 files changed, 84 insertions, 0 deletions
diff --git a/graphics/dc20ctrl/files/patch-ah b/graphics/dc20ctrl/files/patch-ah
new file mode 100644
index 000000000000..adf382e60a13
--- /dev/null
+++ b/graphics/dc20ctrl/files/patch-ah
@@ -0,0 +1,84 @@
+--- main.c.orig Wed Feb 18 02:34:18 1998
++++ main.c Mon Feb 5 19:32:38 2001
+@@ -169,7 +169,7 @@
+ *pivot3;
+ int result = 0,
+ i,
+- first,
++ first = 0,
+ last,
+ orientation = ROT_STRAIGHT,
+ this_orientation;
+@@ -195,11 +195,14 @@
+ }
+ this_orientation = orientation; /* sets default orientation */
+ strsep(&pivot2, "-");
+- first = strtol(string, &pivot3, 10);
+- if (first < 1 || first > 16) {
+- if (!quiet) fprintf(stderr, "%s: parse_pics: error: out of range %d\n", __progname, first);
+- return -1;
++ if (string != NULL) {
++ first = strtol(string, &pivot3, 10);
++ if (first < 1 || first > 16) {
++ if (!quiet) fprintf(stderr, "%s: parse_pics: error: out of range %d\n", __progname, first);
++ return -1;
++ }
+ }
++
+ if (pivot2) {
+ if (*pivot3) {
+ if (!quiet) fprintf(stderr, "%s: parse_pics: error: extraneous characters '%s' in %d%s-%s\n", __progname, pivot3, first, pivot3, pivot2);
+@@ -216,8 +219,8 @@
+ } else {
+ last = first;
+ }
+-
+- if (*pivot3) {
++
++ if (pivot3 && *pivot3) {
+ /*
+ * "numberorientation"
+ */
+@@ -245,7 +248,7 @@
+ * Main program: parse switches and take actions
+ */
+
+-void main(int argc, char *argv[])
++int main(int argc, char *argv[])
+ {
+ int curopt,
+ actions = 0,
+@@ -503,17 +506,29 @@
+ clock = time(NULL);
+
+ if (pics_pre) {
+- sprintf(pics_name, "%s_%%d.%%s", pics_pre);
++ if (snprintf(pics_name, sizeof(pics_name), "%s_%%d.%%s", pics_pre) >= sizeof(pics_name)) {
++ fprintf(stderr, "%s: error: filename too long\n", __progname);
++ exit(1);
++ }
+ } else {
+ strftime(name_template, NAME_LEN, "%%s_%Y_%m_%d_%%d_%%%%d.%%%%s", localtime(&clock));
+- sprintf(pics_name, name_template, "pic", session);
++ if (snprintf(pics_name, sizeof(pics_name), name_template, "pic", session) >= sizeof(pics_name)) {
++ fprintf(stderr, "%s: error: filename too long\n", __progname);
++ exit(1);
++ }
+ }
+
+ if (thumbs_pre) {
+- sprintf(thumbs_name, "%s_%%d", thumbs_pre);
++ if (snprintf(thumbs_name, sizeof(thumbs_name), "%s_%%d", thumbs_pre) >= sizeof(thumbs_name)) {
++ fprintf(stderr, "%s: error: filename too long\n", __progname);
++ exit(1);
++ }
+ } else {
+ strftime(name_template, NAME_LEN, "%%s_%Y_%m_%d_%%d_%%%%d", localtime(&clock));
+- sprintf(thumbs_name, name_template, "thumb", session);
++ if (snprintf(thumbs_name, sizeof(thumbs_name), name_template, "thumb", session) >= sizeof(thumbs_name)) {
++ fprintf(stderr, "%s: error: filename too long\n", __progname);
++ exit(1);
++ }
+ }
+
+ if (actions == 0) {