hc
2023-12-06 d38611ca164021d018c1b23eee65bbebc09c63e0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Upstream-Status: Inappropriate [1]
 
[1] Not the author, the patch is from:
http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
 
--- rdist-6.1.5/src/filesys.c.stat64    2005-05-04 14:11:03.000000000 +0200
+++ rdist-6.1.5/src/filesys.c    2005-05-04 14:11:10.000000000 +0200
@@ -430,8 +430,8 @@
  */
 int getfilesysinfo(file, freespace, freefiles)
     char *file;
-    long *freespace;
-    long *freefiles;
+    fsblkcnt_t *freespace;
+    fsfilcnt_t *freefiles;
 {
 #if    defined(STATFS_TYPE)
     static statfs_t statfsbuf;
--- rdist-6.1.5/src/server.c.stat64    2005-05-04 14:11:23.000000000 +0200
+++ rdist-6.1.5/src/server.c    2005-05-04 14:20:34.000000000 +0200
@@ -62,8 +62,8 @@
 int    catname = 0;        /* cat name to target name */
 char    *sptarget[32];        /* stack of saved ptarget's for directories */
 char   *fromhost = NULL;    /* Client hostname */
-static long min_freespace = 0;    /* Minimium free space on a filesystem */
-static long min_freefiles = 0;    /* Minimium free # files on a filesystem */
+static fsblkcnt_t min_freespace = 0; /* Minimium free space on a filesystem */
+static fsfilcnt_t min_freefiles = 0; /* Minimium free # files on a filesystem */
 int    oumask;            /* Old umask */
 
 /*
@@ -1326,7 +1326,7 @@
             fatalerr("Expected digit, got '%s'.", cp);
             return;
         }
-        min_freespace = (unsigned long) atoi(cp);
+        min_freespace = (fsblkcnt_t) atoll(cp);
         break;
 
     case SC_FREEFILES:     /* Minimium free files */
@@ -1334,7 +1334,7 @@
             fatalerr("Expected digit, got '%s'.", cp);
             return;
         }
-        min_freefiles = (unsigned long) atoi(cp);
+        min_freefiles = (fsfilcnt_t) atoll(cp);
         break;
 
     case SC_LOGGING:    /* Logging options */
@@ -1364,7 +1364,8 @@
     time_t mtime, atime;
     char *owner, *group, *file;
     char new[MAXPATHLEN];
-    long freespace = -1, freefiles = -1;
+    fsfilcnt_t freefiles = -1;
+    fsblkcnt_t freespace = -1;
     char *cp = cmd;
 
     /*
@@ -1499,7 +1500,7 @@
      */
     if (min_freespace || min_freefiles) {
         /* Convert file size to kilobytes */
-        long fsize = (long) (size / 1024);
+        fsblkcnt_t fsize = (fsblkcnt_t) (size / 1024);
 
         if (getfilesysinfo(target, &freespace, &freefiles) != 0)
             return;
@@ -1511,14 +1512,14 @@
         if (min_freespace && (freespace >= 0) && 
             (freespace - fsize < min_freespace)) {
             error(
-             "%s: Not enough free space on filesystem: min %d free %d",
+             "%s: Not enough free space on filesystem: min %lld free %lld",
                   target, min_freespace, freespace);
             return;
         }
         if (min_freefiles && (freefiles >= 0) &&
             (freefiles - 1 < min_freefiles)) {
             error(
-             "%s: Not enough free files on filesystem: min %d free %d",
+             "%s: Not enough free files on filesystem: min %lld free %lld",
                   target, min_freefiles, freefiles);
             return;
         }