Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 405805
Collapse All | Expand All

(-)util-linux-2.21.2.orig/lib/xxstrdup.c (+14 lines)
Line 0 Link Here
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
char *xstrdup(const char *s)
5
{
6
    char *t;
7
    if(!s) return NULL;
8
    t = strdup(s);
9
    if(!t) {
10
        fprintf(stderr, "not enough memory\n");
11
        exit(2); /* EX_SYSERR */
12
    }
13
    return t;
14
}
(-)util-linux-2.21.2.orig/mount/aes.c (+299 lines)
Line 0 Link Here
1
// I retain copyright in this code but I encourage its free use provided
2
// that I don't carry any responsibility for the results. I am especially 
3
// happy to see it used in free and open source software. If you do use 
4
// it I would appreciate an acknowledgement of its origin in the code or
5
// the product that results and I would also appreciate knowing a little
6
// about the use to which it is being put. I am grateful to Frank Yellin
7
// for some ideas that are used in this implementation.
8
//
9
// Dr B. R. Gladman <brg@gladman.uk.net> 6th April 2001.
10
//
11
// This is an implementation of the AES encryption algorithm (Rijndael)
12
// designed by Joan Daemen and Vincent Rijmen. This version is designed
13
// to provide both fixed and dynamic block and key lengths and can also 
14
// run with either big or little endian internal byte order (see aes.h). 
15
// It inputs block and key lengths in bytes with the legal values being 
16
// 16, 24 and 32.
17
18
/*
19
 * Modified by Jari Ruusu,  May 1 2001
20
 *  - Fixed some compile warnings, code was ok but gcc warned anyway.
21
 *  - Changed basic types: byte -> unsigned char, word -> u_int32_t
22
 *  - Major name space cleanup: Names visible to outside now begin
23
 *    with "aes_" or "AES_". A lot of stuff moved from aes.h to aes.c
24
 *  - Removed C++ and DLL support as part of name space cleanup.
25
 *  - Eliminated unnecessary recomputation of tables. (actual bug fix)
26
 *  - Merged precomputed constant tables to aes.c file.
27
 *  - Removed data alignment restrictions for portability reasons.
28
 *  - Made block and key lengths accept bit count (128/192/256)
29
 *    as well byte count (16/24/32).
30
 *  - Removed all error checks. This change also eliminated the need
31
 *    to preinitialize the context struct to zero.
32
 *  - Removed some totally unused constants.
33
 */
34
35
/*
36
 * Modified by Jari Ruusu,  June 9 2003
37
 *  - Removed all code not necessary for small size
38
 *    optimized encryption using 256 bit keys.
39
 */
40
41
#include "aes.h"
42
43
#if AES_BLOCK_SIZE != 16
44
#error an illegal block size has been specified
45
#endif  
46
47
// upr(x,n): rotates bytes within words by n positions, moving bytes 
48
// to higher index positions with wrap around into low positions
49
// bval(x,n): extracts a byte from a word
50
51
#define upr(x,n)        (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n))))
52
#define bval(x,n)       ((unsigned char)((x) >> 8 * (n)))
53
#define bytes2word(b0, b1, b2, b3)  \
54
        ((u_int32_t)(b3) << 24 | (u_int32_t)(b2) << 16 | (u_int32_t)(b1) << 8 | (b0))
55
56
#if defined(i386) || defined(_I386) || defined(__i386__) || defined(__i386)
57
/* little endian processor without data alignment restrictions */
58
#define word_in(x)      *(u_int32_t*)(x)
59
#define word_out(x,v)   *(u_int32_t*)(x) = (v)
60
#else
61
/* slower but generic big endian or with data alignment restrictions */
62
#define word_in(x)      ((u_int32_t)(((unsigned char *)(x))[0])|((u_int32_t)(((unsigned char *)(x))[1])<<8)|((u_int32_t)(((unsigned char *)(x))[2])<<16)|((u_int32_t)(((unsigned char *)(x))[3])<<24))
63
#define word_out(x,v)   ((unsigned char *)(x))[0]=(v),((unsigned char *)(x))[1]=((v)>>8),((unsigned char *)(x))[2]=((v)>>16),((unsigned char *)(x))[3]=((v)>>24)
64
#endif
65
66
// the finite field modular polynomial and elements
67
68
#define ff_poly 0x011b
69
#define ff_hi   0x80
70
71
static int tab_gen = 0;
72
static unsigned char  s_box[256];            // the S box
73
static u_int32_t  rcon_tab[AES_RC_LENGTH];   // table of round constants
74
static u_int32_t  ft_tab[4][256];
75
static u_int32_t  fl_tab[4][256];
76
77
// Generate the tables for the dynamic table option
78
79
// It will generally be sensible to use tables to compute finite 
80
// field multiplies and inverses but where memory is scarse this 
81
// code might sometimes be better.
82
83
// return 2 ^ (n - 1) where n is the bit number of the highest bit
84
// set in x with x in the range 1 < x < 0x00000200.   This form is
85
// used so that locals within FFinv can be bytes rather than words
86
87
static unsigned char hibit(const u_int32_t x)
88
{   unsigned char r = (unsigned char)((x >> 1) | (x >> 2));
89
    
90
    r |= (r >> 2);
91
    r |= (r >> 4);
92
    return (r + 1) >> 1;
93
}
94
95
// return the inverse of the finite field element x
96
97
static unsigned char FFinv(const unsigned char x)
98
{   unsigned char    p1 = x, p2 = 0x1b, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0;
99
100
    if(x < 2) return x;
101
102
    for(;;)
103
    {
104
        if(!n1) return v1;
105
106
        while(n2 >= n1)
107
        {   
108
            n2 /= n1; p2 ^= p1 * n2; v2 ^= v1 * n2; n2 = hibit(p2);
109
        }
110
        
111
        if(!n2) return v2;
112
113
        while(n1 >= n2)
114
        {   
115
            n1 /= n2; p1 ^= p2 * n1; v1 ^= v2 * n1; n1 = hibit(p1);
116
        }
117
    }
118
}
119
120
// define the finite field multiplies required for Rijndael
121
122
#define FFmul02(x)  ((((x) & 0x7f) << 1) ^ ((x) & 0x80 ? 0x1b : 0))
123
#define FFmul03(x)  ((x) ^ FFmul02(x))
124
125
// The forward and inverse affine transformations used in the S-box
126
127
#define fwd_affine(x) \
128
    (w = (u_int32_t)x, w ^= (w<<1)^(w<<2)^(w<<3)^(w<<4), 0x63^(unsigned char)(w^(w>>8)))
129
130
static void gen_tabs(void)
131
{   u_int32_t  i, w;
132
133
    for(i = 0, w = 1; i < AES_RC_LENGTH; ++i)
134
    {
135
        rcon_tab[i] = bytes2word(w, 0, 0, 0);
136
        w = (w << 1) ^ (w & ff_hi ? ff_poly : 0);
137
    }
138
139
    for(i = 0; i < 256; ++i)
140
    {   unsigned char    b;
141
142
        s_box[i] = b = fwd_affine(FFinv((unsigned char)i));
143
144
        w = bytes2word(b, 0, 0, 0);
145
        fl_tab[0][i] = w;
146
        fl_tab[1][i] = upr(w,1);
147
        fl_tab[2][i] = upr(w,2);
148
        fl_tab[3][i] = upr(w,3);
149
        w = bytes2word(FFmul02(b), b, b, FFmul03(b));
150
        ft_tab[0][i] = w;
151
        ft_tab[1][i] = upr(w,1);
152
        ft_tab[2][i] = upr(w,2);
153
        ft_tab[3][i] = upr(w,3);
154
    }
155
}
156
157
#define four_tables(x,tab,vf,rf,c) \
158
 (  tab[0][bval(vf(x,0,c),rf(0,c))] \
159
  ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
160
  ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
161
  ^ tab[3][bval(vf(x,3,c),rf(3,c))])
162
163
#define vf1(x,r,c)  (x)
164
#define rf1(r,c)    (r)
165
#define rf2(r,c)    ((r-c)&3)
166
167
#define ls_box(x,c)     four_tables(x,fl_tab,vf1,rf2,c)
168
169
#define nc   (AES_BLOCK_SIZE / 4)
170
171
// Initialise the key schedule from the user supplied key.
172
// The key length is now specified in bytes, 32.
173
// This corresponds to bit length of 256 bits, and
174
// to Nk value of 8 respectively.
175
176
void aes_set_key(aes_context *cx, const unsigned char in_key[], int n_bytes, const int f)
177
{   u_int32_t    *kf, *kt, rci;
178
179
    if(!tab_gen) { gen_tabs(); tab_gen = 1; }
180
181
    cx->aes_Nkey = 8;
182
    cx->aes_Nrnd = (cx->aes_Nkey > nc ? cx->aes_Nkey : nc) + 6; 
183
184
    cx->aes_e_key[0] = word_in(in_key     );
185
    cx->aes_e_key[1] = word_in(in_key +  4);
186
    cx->aes_e_key[2] = word_in(in_key +  8);
187
    cx->aes_e_key[3] = word_in(in_key + 12);
188
189
    kf = cx->aes_e_key; 
190
    kt = kf + nc * (cx->aes_Nrnd + 1) - cx->aes_Nkey; 
191
    rci = 0;
192
193
    switch(cx->aes_Nkey)
194
    {
195
    case 8: cx->aes_e_key[4] = word_in(in_key + 16);
196
            cx->aes_e_key[5] = word_in(in_key + 20);
197
            cx->aes_e_key[6] = word_in(in_key + 24);
198
            cx->aes_e_key[7] = word_in(in_key + 28);
199
            do
200
            {   kf[ 8] = kf[0] ^ ls_box(kf[7],3) ^ rcon_tab[rci++];
201
                kf[ 9] = kf[1] ^ kf[ 8];
202
                kf[10] = kf[2] ^ kf[ 9];
203
                kf[11] = kf[3] ^ kf[10];
204
                kf[12] = kf[4] ^ ls_box(kf[11],0);
205
                kf[13] = kf[5] ^ kf[12];
206
                kf[14] = kf[6] ^ kf[13];
207
                kf[15] = kf[7] ^ kf[14];
208
                kf += 8;
209
            }
210
            while (kf < kt);
211
            break;
212
    }
213
}
214
215
// y = output word, x = input word, r = row, c = column
216
// for r = 0, 1, 2 and 3 = column accessed for row r
217
218
#define s(x,c) x[c]
219
220
// I am grateful to Frank Yellin for the following constructions
221
// which, given the column (c) of the output state variable that
222
// is being computed, return the input state variables which are
223
// needed for each row (r) of the state
224
225
// For the fixed block size options, compilers reduce these two 
226
// expressions to fixed variable references. For variable block 
227
// size code conditional clauses will sometimes be returned
228
229
#define fwd_var(x,r,c) \
230
 ( r==0 ?			\
231
    ( c==0 ? s(x,0) \
232
    : c==1 ? s(x,1) \
233
    : c==2 ? s(x,2) \
234
    : c==3 ? s(x,3) \
235
    : c==4 ? s(x,4) \
236
    : c==5 ? s(x,5) \
237
    : c==6 ? s(x,6) \
238
    : s(x,7))		\
239
 : r==1 ?			\
240
    ( c==0 ? s(x,1) \
241
    : c==1 ? s(x,2) \
242
    : c==2 ? s(x,3) \
243
    : c==3 ? nc==4 ? s(x,0) : s(x,4) \
244
    : c==4 ? s(x,5) \
245
    : c==5 ? nc==8 ? s(x,6) : s(x,0) \
246
    : c==6 ? s(x,7) \
247
    : s(x,0))		\
248
 : r==2 ?			\
249
    ( c==0 ? nc==8 ? s(x,3) : s(x,2) \
250
    : c==1 ? nc==8 ? s(x,4) : s(x,3) \
251
    : c==2 ? nc==4 ? s(x,0) : nc==8 ? s(x,5) : s(x,4) \
252
    : c==3 ? nc==4 ? s(x,1) : nc==8 ? s(x,6) : s(x,5) \
253
    : c==4 ? nc==8 ? s(x,7) : s(x,0) \
254
    : c==5 ? nc==8 ? s(x,0) : s(x,1) \
255
    : c==6 ? s(x,1) \
256
    : s(x,2))		\
257
 :					\
258
    ( c==0 ? nc==8 ? s(x,4) : s(x,3) \
259
    : c==1 ? nc==4 ? s(x,0) : nc==8 ? s(x,5) : s(x,4) \
260
    : c==2 ? nc==4 ? s(x,1) : nc==8 ? s(x,6) : s(x,5) \
261
    : c==3 ? nc==4 ? s(x,2) : nc==8 ? s(x,7) : s(x,0) \
262
    : c==4 ? nc==8 ? s(x,0) : s(x,1) \
263
    : c==5 ? nc==8 ? s(x,1) : s(x,2) \
264
    : c==6 ? s(x,2) \
265
    : s(x,3)))
266
267
#define si(y,x,k,c) s(y,c) = word_in(x + 4 * c) ^ k[c]
268
#define so(y,x,c)   word_out(y + 4 * c, s(x,c))
269
270
#define fwd_rnd(y,x,k,c)    s(y,c)= (k)[c] ^ four_tables(x,ft_tab,fwd_var,rf1,c)
271
#define fwd_lrnd(y,x,k,c)   s(y,c)= (k)[c] ^ four_tables(x,fl_tab,fwd_var,rf1,c)
272
273
#define locals(y,x)     x[4],y[4]
274
275
#define l_copy(y, x)    s(y,0) = s(x,0); s(y,1) = s(x,1); \
276
                        s(y,2) = s(x,2); s(y,3) = s(x,3);
277
#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3)
278
#define state_out(y,x)  so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3)
279
#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3)
280
281
void aes_encrypt(const aes_context *cx, const unsigned char in_blk[], unsigned char out_blk[])
282
{   u_int32_t        locals(b0, b1);
283
    const u_int32_t  *kp = cx->aes_e_key;
284
285
    state_in(b0, in_blk, kp); kp += nc;
286
287
    {   u_int32_t    rnd;
288
289
        for(rnd = 0; rnd < cx->aes_Nrnd - 1; ++rnd)
290
        {
291
            round(fwd_rnd, b1, b0, kp); 
292
            l_copy(b0, b1); kp += nc;
293
        }
294
295
        round(fwd_lrnd, b0, b1, kp);
296
    }
297
298
    state_out(out_blk, b0);
299
}
(-)util-linux-2.21.2.orig/mount/aes.h (+97 lines)
Line 0 Link Here
1
// I retain copyright in this code but I encourage its free use provided
2
// that I don't carry any responsibility for the results. I am especially 
3
// happy to see it used in free and open source software. If you do use 
4
// it I would appreciate an acknowledgement of its origin in the code or
5
// the product that results and I would also appreciate knowing a little
6
// about the use to which it is being put. I am grateful to Frank Yellin
7
// for some ideas that are used in this implementation.
8
//
9
// Dr B. R. Gladman <brg@gladman.uk.net> 6th April 2001.
10
//
11
// This is an implementation of the AES encryption algorithm (Rijndael)
12
// designed by Joan Daemen and Vincent Rijmen. This version is designed
13
// to provide both fixed and dynamic block and key lengths and can also 
14
// run with either big or little endian internal byte order (see aes.h). 
15
// It inputs block and key lengths in bytes with the legal values being 
16
// 16, 24 and 32.
17
18
/*
19
 * Modified by Jari Ruusu,  May 1 2001
20
 *  - Fixed some compile warnings, code was ok but gcc warned anyway.
21
 *  - Changed basic types: byte -> unsigned char, word -> u_int32_t
22
 *  - Major name space cleanup: Names visible to outside now begin
23
 *    with "aes_" or "AES_". A lot of stuff moved from aes.h to aes.c
24
 *  - Removed C++ and DLL support as part of name space cleanup.
25
 *  - Eliminated unnecessary recomputation of tables. (actual bug fix)
26
 *  - Merged precomputed constant tables to aes.c file.
27
 *  - Removed data alignment restrictions for portability reasons.
28
 *  - Made block and key lengths accept bit count (128/192/256)
29
 *    as well byte count (16/24/32).
30
 *  - Removed all error checks. This change also eliminated the need
31
 *    to preinitialize the context struct to zero.
32
 *  - Removed some totally unused constants.
33
 */
34
35
#ifndef _AES_H
36
#define _AES_H
37
38
#if defined(__linux__) && defined(__KERNEL__)
39
#  include <linux/types.h>
40
#else 
41
#  include <sys/types.h>
42
#endif
43
44
// CONFIGURATION OPTIONS (see also aes.c)
45
//
46
// Define AES_BLOCK_SIZE to set the cipher block size (16, 24 or 32) or
47
// leave this undefined for dynamically variable block size (this will
48
// result in much slower code).
49
// IMPORTANT NOTE: AES_BLOCK_SIZE is in BYTES (16, 24, 32 or undefined). If
50
// left undefined a slower version providing variable block length is compiled
51
52
#define AES_BLOCK_SIZE  16
53
54
// The number of key schedule words for different block and key lengths
55
// allowing for method of computation which requires the length to be a
56
// multiple of the key length
57
//
58
// Nk =       4   6   8
59
//        -------------
60
// Nb = 4 |  60  60  64
61
//      6 |  96  90  96
62
//      8 | 120 120 120
63
64
#if !defined(AES_BLOCK_SIZE) || (AES_BLOCK_SIZE == 32)
65
#define AES_KS_LENGTH   120
66
#define AES_RC_LENGTH    29
67
#else
68
#define AES_KS_LENGTH   4 * AES_BLOCK_SIZE
69
#define AES_RC_LENGTH   (9 * AES_BLOCK_SIZE) / 8 - 8
70
#endif
71
72
typedef struct
73
{
74
    u_int32_t    aes_Nkey;      // the number of words in the key input block
75
    u_int32_t    aes_Nrnd;      // the number of cipher rounds
76
    u_int32_t    aes_e_key[AES_KS_LENGTH];   // the encryption key schedule
77
    u_int32_t    aes_d_key[AES_KS_LENGTH];   // the decryption key schedule
78
#if !defined(AES_BLOCK_SIZE)
79
    u_int32_t    aes_Ncol;      // the number of columns in the cipher state
80
#endif
81
} aes_context;
82
83
// THE CIPHER INTERFACE
84
85
#if !defined(AES_BLOCK_SIZE)
86
extern void aes_set_blk(aes_context *, const int);
87
#endif
88
extern void aes_set_key(aes_context *, const unsigned char [], const int, const int);
89
extern void aes_encrypt(const aes_context *, const unsigned char [], unsigned char []);
90
extern void aes_decrypt(const aes_context *, const unsigned char [], unsigned char []);
91
92
// The block length inputs to aes_set_block and aes_set_key are in numbers
93
// of bytes or bits.  The calls to subroutines must be made in the above
94
// order but multiple calls can be made without repeating earlier calls
95
// if their parameters have not changed.
96
97
#endif  // _AES_H
(-)util-linux-2.21.2.orig/mount/lomount.c (+1364 lines)
Line 0 Link Here
1
/* Taken from Ted's losetup.c - Mitch <m.dsouza@mrc-apu.cam.ac.uk> */
2
/* Added vfs mount options - aeb - 960223 */
3
/* Removed lomount - aeb - 960224 */
4
5
/*
6
 * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
7
 * - added Native Language Support
8
 * 1999-03-21 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
9
 * - fixed strerr(errno) in gettext calls
10
 * 2001-04-11 Jari Ruusu
11
 * - added AES support
12
 */
13
14
#define LOOPMAJOR	7
15
16
/*
17
 * losetup.c - setup and control loop devices
18
 */
19
20
#include <stdio.h>
21
#include <string.h>
22
#include <ctype.h>
23
#include <fcntl.h>
24
#include <errno.h>
25
#include <stdlib.h>
26
#include <unistd.h>
27
#include <pwd.h>
28
#include <sys/types.h>
29
#include <sys/ioctl.h>
30
#include <sys/stat.h>
31
#include <sys/mman.h>
32
#include <sys/sysmacros.h>
33
#include <sys/wait.h>
34
#include <limits.h>
35
#include <fcntl.h>
36
#include <mntent.h>
37
#include <locale.h>
38
#include <sys/time.h>
39
#include <sys/utsname.h>
40
#include <signal.h>
41
42
#include "loop.h"
43
#include "lomount.h"
44
#include "nls.h"
45
#include "sha512.h"
46
#include "rmd160.h"
47
#include "aes.h"
48
49
#if !defined(BLKGETSIZE64)
50
# define BLKGETSIZE64 _IOR(0x12,114,size_t)
51
#endif
52
53
extern int verbose;
54
extern char *xstrdup (const char *s);	/* not: #include "sundries.h" */
55
extern void show_all_loops(void);
56
extern int read_options_from_fstab(char *, char **);
57
extern int recompute_loop_dev_size(char *);
58
59
#if !defined(LOOP_PASSWORD_MIN_LENGTH)
60
# define  LOOP_PASSWORD_MIN_LENGTH   20
61
#endif
62
63
char    *passFDnumber = (char *)0;
64
char    *passAskTwice = (char *)0;
65
char    *passSeedString = (char *)0;
66
char    *passHashFuncName = (char *)0;
67
char    *passIterThousands = (char *)0;
68
char    *loInitValue = (char *)0;
69
char    *gpgKeyFile = (char *)0;
70
char    *gpgHomeDir = (char *)0;
71
char    *clearTextKeyFile = (char *)0;
72
char    *loopOffsetBytes = (char *)0;
73
char    *loopSizeBytes = (char *)0;
74
char    *loopEncryptionType = (char *)0;
75
76
static int  multiKeyMode = 0;   /* 0=single-key 64=multi-key-v2 65=multi-key-v3 1000=any */
77
static char *multiKeyPass[66];
78
static char *loopFileName;
79
80
#ifdef MAIN
81
static char *
82
crypt_name (int id, int *flags) {
83
	int i;
84
85
	for (i = 0; loop_crypt_type_tbl[i].id != -1; i++)
86
		if(id == loop_crypt_type_tbl[i].id) {
87
			*flags = loop_crypt_type_tbl[i].flags;
88
			return loop_crypt_type_tbl[i].name;
89
		}
90
	*flags = 0;
91
	if(id == 18)
92
		return "CryptoAPI";
93
	return "undefined";
94
}
95
96
static int
97
show_loop(char *device) {
98
	struct loop_info64 loopinfo;
99
	int fd;
100
101
	if ((fd = open(device, O_RDONLY)) < 0) {
102
		int errsv = errno;
103
		fprintf(stderr, _("loop: can't open device %s: %s\n"),
104
			device, strerror (errsv));
105
		return 2;
106
	}
107
	if (loop_get_status64_ioctl(fd, &loopinfo) < 0) {
108
		int errsv = errno;
109
		fprintf(stderr, _("loop: can't get info on device %s: %s\n"),
110
			device, strerror (errsv));
111
		close (fd);
112
		return 1;
113
	}
114
	loopinfo.lo_file_name[LO_NAME_SIZE-1] = 0;
115
	loopinfo.lo_crypt_name[LO_NAME_SIZE-1] = 0;
116
	printf("%s: [%04llx]:%llu (%s)", device, (unsigned long long)loopinfo.lo_device,
117
		(unsigned long long)loopinfo.lo_inode, loopinfo.lo_file_name);
118
	if (loopinfo.lo_offset) {
119
		if ((long long)loopinfo.lo_offset < 0) {
120
			printf(_(" offset=@%llu"), -((unsigned long long)loopinfo.lo_offset));
121
		} else {
122
			printf(_(" offset=%llu"), (unsigned long long)loopinfo.lo_offset);
123
		}
124
	}
125
	if (loopinfo.lo_sizelimit)
126
		printf(_(" sizelimit=%llu"), (unsigned long long)loopinfo.lo_sizelimit);
127
	if (loopinfo.lo_encrypt_type) {
128
		int flags;
129
		char *s = crypt_name (loopinfo.lo_encrypt_type, &flags);
130
131
		printf(_(" encryption=%s"), s);
132
		/* type 18 == LO_CRYPT_CRYPTOAPI */
133
		if (loopinfo.lo_encrypt_type == 18) {
134
			printf("/%s", loopinfo.lo_crypt_name);
135
		} else {
136
			if(flags & 2)
137
				printf("-");
138
			if(flags & 1)
139
				printf("%u", (unsigned int)loopinfo.lo_encrypt_key_size << 3);
140
		}
141
	}
142
	switch(loopinfo.lo_flags & 0x180000) {
143
	case 0x180000:
144
		printf(_(" multi-key-v3"));
145
		break;
146
	case 0x100000:
147
		printf(_(" multi-key-v2"));
148
		break;
149
	}
150
	/* type 2 == LO_CRYPT_DES */
151
	if (loopinfo.lo_init[0] && (loopinfo.lo_encrypt_type != 2))
152
		printf(_(" loinit=%llu"), (unsigned long long)loopinfo.lo_init[0]);
153
	if (loopinfo.lo_flags & 0x200000)
154
		printf(_(" read-only"));
155
	printf("\n");
156
	close (fd);
157
158
	return 0;
159
}
160
#endif
161
162
#define SIZE(a) (sizeof(a)/sizeof(a[0]))
163
164
char *
165
find_unused_loop_device (void) {
166
	/* Just creating a device, say in /tmp, is probably a bad idea -
167
	   people might have problems with backup or so.
168
	   So, we just try /dev/loop[0-7]. */
169
	char dev[20];
170
	char *loop_formats[] = { "/dev/loop%d", "/dev/loop/%d" };
171
	int i, j, fd, somedev = 0, someloop = 0;
172
	struct stat statbuf;
173
174
	for (j = 0; j < SIZE(loop_formats); j++) {
175
	    for(i = 0; i < 256; i++) {
176
		sprintf(dev, loop_formats[j], i);
177
		if (stat (dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) {
178
			somedev++;
179
			fd = open (dev, O_RDONLY);
180
			if (fd >= 0) {
181
				if (is_unused_loop_device(fd) == 0)
182
					someloop++;		/* in use */
183
				else if (errno == ENXIO) {
184
					close (fd);
185
					return xstrdup(dev);/* probably free */
186
				}
187
				close (fd);
188
			}
189
			continue;/* continue trying as long as devices exist */
190
		}
191
		break;
192
	    }
193
	}
194
195
#if !defined(MAIN)
196
	{
197
		extern int mount_quiet;
198
		if (mount_quiet)
199
			return 0;
200
	}
201
#endif
202
203
	if (!somedev)
204
		fprintf(stderr, _("Error: could not find any loop device\n"));
205
	else if (!someloop)
206
		fprintf(stderr, _("Error: could not open any loop device\n"));
207
	else
208
		fprintf(stderr, _("Error: could not find any free loop device\n"));
209
	return 0;
210
}
211
212
#if !defined(MAIN)
213
int is_loop_active(const char *dev, const char *backdev)
214
{
215
	int fd;
216
	int ret = 0;
217
	struct stat statbuf;
218
	struct loop_info64 loopinfo;
219
	if (stat (dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) {
220
		fd = open (dev, O_RDONLY);
221
		if (fd < 0)
222
			return 0;
223
		if ((loop_get_status64_ioctl(fd, &loopinfo) == 0)
224
		    && (stat (backdev, &statbuf) == 0)
225
		    && (statbuf.st_dev == loopinfo.lo_device)
226
		    && (statbuf.st_ino == loopinfo.lo_inode))
227
			ret = 1; /* backing device matches */
228
		memset(&loopinfo, 0, sizeof(loopinfo));
229
		close(fd);
230
	}
231
	return ret;
232
}
233
#endif
234
235
static int rd_wr_retry(int fd, char *buf, int cnt, int w)
236
{
237
	int x, y, z;
238
239
	x = 0;
240
	while(x < cnt) {
241
		y = cnt - x;
242
		if(w) {
243
			z = write(fd, buf + x, y);
244
		} else {
245
			z = read(fd, buf + x, y);
246
			if (!z) return x;
247
		}
248
		if(z < 0) {
249
			if ((errno == EAGAIN) || (errno == ENOMEM) || (errno == ERESTART) || (errno == EINTR)) {
250
				continue;
251
			}
252
			return x;
253
		}
254
		x += z;
255
	}
256
	return x;
257
}
258
259
static char *get_FD_pass(int fd)
260
{
261
	char *p = NULL, *n;
262
	int x = 0, y = 0;
263
264
	do {
265
		if(y >= (x - 1)) {
266
			x += 128;
267
			/* Must enforce some max limit here -- this code   */
268
			/* runs as part of mount, and mount is setuid root */
269
			/* and has used mlockall(MCL_CURRENT | MCL_FUTURE) */
270
			if(x > (4*1024)) return(NULL);
271
			n = malloc(x);
272
			if(!n) return(NULL);
273
			if(p) {
274
				memcpy(n, p, y);
275
				memset(p, 0, y);
276
				free(p);
277
			}
278
			p = n;
279
		}
280
		if(rd_wr_retry(fd, p + y, 1, 0) != 1) break;
281
		if((p[y] == '\n') || !p[y]) break;
282
		y++;
283
	} while(1);
284
	if(p) p[y] = 0;
285
	return p;
286
}
287
288
static unsigned long long mystrtoull(char *s, int acceptAT)
289
{
290
	unsigned long long v = 0;
291
	int negative = 0;
292
293
	while ((*s == ' ') || (*s == '\t'))
294
		s++;
295
	if (acceptAT && (*s == '@')) {
296
		s++;
297
		negative = 1;
298
	}
299
	if (*s == '0') {
300
		s++;
301
		if ((*s == 'x') || (*s == 'X')) {
302
			s++;
303
			sscanf(s, "%llx", &v);
304
		} else {
305
			sscanf(s, "%llo", &v);
306
		}
307
	} else {
308
		sscanf(s, "%llu", &v);
309
	}
310
	return negative ? -v : v;
311
}
312
313
static void warnAboutBadKeyData(int x)
314
{
315
	if((x > 1) && (x != 64) && (x != 65)) {
316
		fprintf(stderr, _("Warning: Unknown key data format - using it anyway\n"));
317
	}
318
}
319
320
static int are_these_files_same(const char *name1, const char *name2)
321
{
322
	struct stat statbuf1;
323
	struct stat statbuf2;
324
325
	if(!name1 || !*name1 || !name2 || !*name2) return 0;
326
	if(stat(name1, &statbuf1)) return 0;
327
	if(stat(name2, &statbuf2)) return 0;
328
	if(statbuf1.st_dev != statbuf2.st_dev) return 0;
329
	if(statbuf1.st_ino != statbuf2.st_ino) return 0;
330
	return 1;   /* are same */
331
}
332
333
static char *do_GPG_pipe(char *pass)
334
{
335
	int     x, pfdi[2], pfdo[2];
336
	char    str[10], *a[16], *e[2], *h;
337
	pid_t   gpid;
338
	struct passwd *p;
339
	void    *oldSigPipeHandler;
340
341
	if((getuid() == 0) && gpgHomeDir && gpgHomeDir[0]) {
342
		h = gpgHomeDir;
343
	} else {
344
		if(!(p = getpwuid(getuid()))) {
345
			fprintf(stderr, _("Error: Unable to detect home directory for uid %d\n"), (int)getuid());
346
			return NULL;
347
		}
348
		h = p->pw_dir;
349
	}
350
	if(!(e[0] = malloc(strlen(h) + 6))) {
351
		nomem1:
352
		fprintf(stderr, _("Error: Unable to allocate memory\n"));
353
		return NULL;
354
	}
355
	sprintf(e[0], "HOME=%s", h);
356
	e[1] = 0;
357
358
	if(pipe(&pfdi[0])) {
359
		nomem2:
360
		free(e[0]);
361
		goto nomem1;
362
	}
363
	if(pipe(&pfdo[0])) {
364
		close(pfdi[0]);
365
		close(pfdi[1]);
366
		goto nomem2;
367
	}
368
369
	/*
370
	 * When this code is run as part of losetup, normal read permissions
371
	 * affect the open() below because losetup is not setuid-root.
372
	 *
373
	 * When this code is run as part of mount, only root can set
374
	 * 'gpgKeyFile' and as such, only root can decide what file is opened
375
	 * below. However, since mount is usually setuid-root all non-root
376
	 * users can also open() the file too, but that file's contents are
377
	 * only piped to gpg. This readable-for-all is intended behaviour,
378
	 * and is very useful in situations where non-root users mount loop
379
	 * devices with their own gpg private key, and yet don't have access
380
	 * to the actual key used to encrypt loop device.
381
	 */
382
	if((x = open(gpgKeyFile, O_RDONLY)) == -1) {
383
		fprintf(stderr, _("Error: unable to open %s for reading\n"), gpgKeyFile);
384
		nomem3:
385
		free(e[0]);
386
		close(pfdo[0]);
387
		close(pfdo[1]);
388
		close(pfdi[0]);
389
		close(pfdi[1]);
390
		return NULL;
391
	}
392
393
	/*
394
	 * If someone puts a gpg key file at beginning of device and
395
	 * puts the real file system at some offset into the device,
396
	 * this code extracts that gpg key file into a temp file so gpg
397
	 * won't end up reading whole device when decrypting the key file.
398
	 *
399
	 * Example of encrypted cdrom mount with 8192 bytes reserved for gpg key file:
400
	 * mount -t iso9660 /dev/cdrom /cdrom -o loop=/dev/loop0,encryption=AES128,gpgkey=/dev/cdrom,offset=8192
401
	 *                  ^^^^^^^^^^                                                    ^^^^^^^^^^        ^^^^
402
	 */
403
	if(loopOffsetBytes && are_these_files_same(loopFileName, gpgKeyFile)) {
404
		FILE *f;
405
		char b[1024];
406
		long long cnt;
407
		int cnt2, cnt3;
408
409
		cnt = mystrtoull(loopOffsetBytes, 1);
410
		if(cnt < 0) cnt = -cnt;
411
		if(cnt > (1024 * 1024)) cnt = 1024 * 1024; /* sanity check */
412
		f = tmpfile();
413
		if(!f) {
414
			fprintf(stderr, _("Error: unable to create temp file\n"));
415
			close(x);
416
			goto nomem3;
417
		}
418
		while(cnt > 0) {
419
			cnt2 = sizeof(b);
420
			if(cnt < cnt2) cnt2 = cnt;
421
			cnt3 = rd_wr_retry(x, b, cnt2, 0);
422
			if(cnt3 && (fwrite(b, cnt3, 1, f) != 1)) {
423
				tmpWrErr:
424
				fprintf(stderr, _("Error: unable to write to temp file\n"));
425
				fclose(f);
426
				close(x);
427
				goto nomem3;
428
			}
429
			if(cnt2 != cnt3) break;
430
			cnt -= cnt3;
431
		}
432
		if(fflush(f)) goto tmpWrErr;
433
		close(x);
434
		x = dup(fileno(f));
435
		fclose(f);
436
		lseek(x, 0L, SEEK_SET);
437
	}
438
439
	sprintf(str, "%d", pfdi[0]);
440
	if(!(gpid = fork())) {
441
		dup2(x, 0);
442
		dup2(pfdo[1], 1);
443
		close(x);
444
		close(pfdi[1]);
445
		close(pfdo[0]);
446
		close(pfdo[1]);
447
		if((x = open("/dev/null", O_WRONLY)) >= 0) {
448
			dup2(x, 2);
449
			close(x);
450
		}
451
		x = 0;
452
		a[x++] = "gpg";
453
		if(gpgHomeDir && gpgHomeDir[0]) {
454
			a[x++] = "--homedir";
455
			a[x++] = gpgHomeDir;
456
		}
457
		a[x++] = "--no-options";
458
		a[x++] = "--quiet";
459
		a[x++] = "--batch";
460
		a[x++] = "--no-tty";
461
		a[x++] = "--passphrase-fd";
462
		a[x++] = str;
463
		a[x++] = "--decrypt";
464
		a[x] = 0;
465
		if(setgid(getgid())) exit(1);
466
		if(setuid(getuid())) exit(1);
467
		for(x = 3; x < 1024; x++) {
468
			if(x == pfdi[0]) continue;
469
			close(x);
470
		}
471
		execve("/bin/gpg", &a[0], &e[0]);
472
		execve("/usr/bin/gpg", &a[0], &e[0]);
473
		execve("/usr/local/bin/gpg", &a[0], &e[0]);
474
		exit(1);
475
	}
476
	free(e[0]);
477
	close(x);
478
	close(pfdi[0]);
479
	close(pfdo[1]);
480
	if(gpid == -1) {
481
		close(pfdi[1]);
482
		close(pfdo[0]);
483
		goto nomem1;
484
	}
485
486
	x = strlen(pass);
487
488
	/* ignore possible SIGPIPE signal while writing to gpg */
489
	oldSigPipeHandler = signal(SIGPIPE, SIG_IGN);
490
	rd_wr_retry(pfdi[1], pass, x, 1);
491
	rd_wr_retry(pfdi[1], "\n", 1, 1);
492
	if(oldSigPipeHandler != SIG_ERR) signal(SIGPIPE, oldSigPipeHandler);
493
494
	close(pfdi[1]);
495
	memset(pass, 0, x);
496
	x = 0;
497
	while(x < 66) {
498
		multiKeyPass[x] = get_FD_pass(pfdo[0]);
499
		if(!multiKeyPass[x]) {
500
			/* mem alloc failed - abort */
501
			multiKeyPass[0] = 0;
502
			break;
503
		}
504
		if(strlen(multiKeyPass[x]) < LOOP_PASSWORD_MIN_LENGTH) break;
505
		x++;
506
	}
507
	warnAboutBadKeyData(x);
508
	if(x >= 65)
509
		multiKeyMode = 65;
510
	if(x == 64)
511
		multiKeyMode = 64;
512
	close(pfdo[0]);
513
	waitpid(gpid, &x, 0);
514
	if(!multiKeyPass[0]) goto nomem1;
515
	return multiKeyPass[0];
516
}
517
518
static char *sGetPass(int minLen, int warnLen)
519
{
520
	char *p, *s, *seed;
521
	int i, ask2, close_i_fd = 0;
522
523
	if(!passFDnumber) {
524
		if(clearTextKeyFile) {
525
			if((i = open(clearTextKeyFile, O_RDONLY)) == -1) {
526
				fprintf(stderr, _("Error: unable to open %s for reading\n"), clearTextKeyFile);
527
				return NULL;
528
			}
529
			close_i_fd = 1;
530
			goto contReadFrom_i;
531
		}
532
		p = getpass(_("Password: "));
533
		ask2 = passAskTwice ? 1 : 0;
534
	} else {
535
		i = atoi(passFDnumber);
536
		contReadFrom_i:
537
		if(gpgKeyFile && gpgKeyFile[0]) {
538
			p = get_FD_pass(i);
539
			if(close_i_fd) close(i);
540
		} else {
541
			int x = 0;
542
			while(x < 66) {
543
				multiKeyPass[x] = get_FD_pass(i);
544
				if(!multiKeyPass[x]) goto nomem;
545
				if(strlen(multiKeyPass[x]) < LOOP_PASSWORD_MIN_LENGTH) break;
546
				x++;
547
			}
548
			if(close_i_fd) close(i);
549
			warnAboutBadKeyData(x);
550
			if(x >= 65) {
551
				multiKeyMode = 65;
552
				return multiKeyPass[0];
553
			}
554
			if(x == 64) {
555
				multiKeyMode = 64;
556
				return multiKeyPass[0];
557
			}
558
			p = multiKeyPass[0];
559
		}
560
		ask2 = 0;
561
	}
562
	if(!p) goto nomem;
563
	if(gpgKeyFile && gpgKeyFile[0]) {
564
		if(ask2) {
565
			i = strlen(p);
566
			s = malloc(i + 1);
567
			if(!s) goto nomem;
568
			strcpy(s, p);
569
			p = getpass(_("Retype password: "));
570
			if(!p) goto nomem;
571
			if(strcmp(s, p)) goto compareErr;
572
			memset(s, 0, i);
573
			free(s);
574
			ask2 = 0;
575
		}
576
		p = do_GPG_pipe(p);
577
		if(!p) return(NULL);
578
		if(!p[0]) {
579
			fprintf(stderr, _("Error: gpg key file decryption failed\n"));
580
			return(NULL);
581
		}
582
		if(multiKeyMode) return(p);
583
	}
584
	i = strlen(p);
585
	if(i < minLen) {
586
		fprintf(stderr, _("Error: Password must be at least %d characters.\n"), minLen);
587
		return(NULL);
588
	}
589
	seed = passSeedString;
590
	if(!seed) seed = "";
591
	s = malloc(i + strlen(seed) + 1);
592
	if(!s) {
593
		nomem:
594
		fprintf(stderr, _("Error: Unable to allocate memory\n"));
595
		return(NULL);
596
	}
597
	strcpy(s, p);
598
	memset(p, 0, i);
599
	if(ask2) {
600
		p = getpass(_("Retype password: "));
601
		if(!p) goto nomem;
602
		if(strcmp(s, p)) {
603
			compareErr:
604
			fprintf(stderr, _("Error: Passwords are not identical\n"));
605
			return(NULL);
606
		}
607
		memset(p, 0, i);
608
	}
609
	if(i < warnLen) {
610
		fprintf(stderr, _("WARNING - Please use longer password (%d or more characters)\n"), LOOP_PASSWORD_MIN_LENGTH);
611
	}
612
	strcat(s, seed);
613
	return(s);
614
}
615
616
/* this is for compatibility with historic loop-AES version */
617
static void unhashed1_key_setup(unsigned char *keyStr, int ile, unsigned char *keyBuf, int bufSize)
618
{
619
	register int    x, y, z, cnt = ile;
620
	unsigned char   *kp;
621
622
	memset(keyBuf, 0, bufSize);
623
	kp = keyStr;
624
	for(x = 0; x < (bufSize * 8); x += 6) {
625
		y = *kp++;
626
		if(--cnt <= 0) {
627
			kp = keyStr;
628
			cnt = ile;
629
		}
630
		if((y >= '0') && (y <= '9')) y -= '0';
631
		else if((y >= 'A') && (y <= 'Z')) y -= ('A' - 10);
632
		else if((y >= 'a') && (y <= 'z')) y -= ('a' - 36);
633
		else if((y == '.') || (y == '/')) y += (62 - '.');
634
		else y &= 63;
635
		z = x >> 3;
636
		if(z < bufSize) {
637
			keyBuf[z] |= y << (x & 7);
638
		}
639
		z++;
640
		if(z < bufSize) {
641
			keyBuf[z] |= y >> (8 - (x & 7));
642
		}
643
	}
644
}
645
646
/* this is for compatibility with mainline mount */
647
static void unhashed2_key_setup(unsigned char *keyStr, int ile, unsigned char *keyBuf, int bufSize)
648
{
649
	memset(keyBuf, 0, bufSize);
650
	strncpy((char *)keyBuf, (char *)keyStr, bufSize - 1);
651
	keyBuf[bufSize - 1] = 0;
652
}
653
654
static void rmd160HashTwiceWithA(unsigned char *ib, int ile, unsigned char *ob, int ole)
655
{
656
	char tmpBuf[20 + 20];
657
	char pwdCopy[130];
658
659
	if(ole < 1) return;
660
	memset(ob, 0, ole);
661
	if(ole > 40) ole = 40;
662
	rmd160_hash_buffer(&tmpBuf[0], (char *)ib, ile);
663
	pwdCopy[0] = 'A';
664
	if(ile > sizeof(pwdCopy) - 1) ile = sizeof(pwdCopy) - 1;
665
	memcpy(pwdCopy + 1, ib, ile);
666
	rmd160_hash_buffer(&tmpBuf[20], pwdCopy, ile + 1);
667
	memcpy(ob, tmpBuf, ole);
668
	memset(tmpBuf, 0, sizeof(tmpBuf));
669
	memset(pwdCopy, 0, sizeof(pwdCopy));
670
}
671
672
extern long long llseek(int, long long, int);
673
674
static long long xx_lseek(int fd, long long offset, int whence)
675
{
676
	if(sizeof(off_t) >= 8) {
677
		return lseek(fd, offset, whence);
678
	} else {
679
		return llseek(fd, offset, whence);
680
	}
681
}
682
683
static int loop_create_random_keys(char *partition, long long offset, long long sizelimit, int loopro, unsigned char *k)
684
{
685
	int x, y, fd;
686
	sha512_context s;
687
	unsigned char b[4096];
688
689
	if(loopro) {
690
		fprintf(stderr, _("Error: read-only device %s\n"), partition);
691
		return 1;
692
	}
693
694
	/*
695
	 * Compute SHA-512 over first 40 KB of old fs data. SHA-512 hash
696
	 * output is then used as entropy for new fs encryption key.
697
	 */
698
	if((fd = open(partition, O_RDWR)) == -1) {
699
		seekFailed:
700
		fprintf(stderr, _("Error: unable to open/seek device %s\n"), partition);
701
		return 1;
702
	}
703
	if(offset < 0) offset = -offset;
704
	if(xx_lseek(fd, offset, SEEK_SET) == -1) {
705
		close(fd);
706
		goto seekFailed;
707
	}
708
	sha512_init(&s);
709
	for(x = 1; x <= 10; x++) {
710
		if((sizelimit > 0) && ((sizeof(b) * x) > sizelimit)) break;
711
		if(rd_wr_retry(fd, &b[0], sizeof(b), 0) != sizeof(b)) break;
712
		sha512_write(&s, &b[0], sizeof(b));
713
	}
714
	sha512_final(&s);
715
716
	/*
717
	 * Overwrite 40 KB of old fs data 20 times so that recovering
718
	 * SHA-512 output beyond this point is difficult and expensive.
719
	 */
720
	for(y = 0; y < 20; y++) {
721
		int z;
722
		struct {
723
			struct timeval tv;
724
			unsigned char h[64];
725
			int x,y,z;
726
		} j;
727
		if(xx_lseek(fd, offset, SEEK_SET) == -1) break;
728
		memcpy(&j.h[0], &s.sha_out[0], 64);
729
		gettimeofday(&j.tv, NULL);
730
		j.y = y;
731
		for(x = 1; x <= 10; x++) {
732
			j.x = x;
733
			for(z = 0; z < sizeof(b); z += 64) {
734
				j.z = z;
735
				sha512_hash_buffer((unsigned char *)&j, sizeof(j), &b[z], 64);
736
			}
737
			if((sizelimit > 0) && ((sizeof(b) * x) > sizelimit)) break;
738
			if(rd_wr_retry(fd, &b[0], sizeof(b), 1) != sizeof(b)) break;
739
		}
740
		memset(&j, 0, sizeof(j));
741
		if(fsync(fd)) break;
742
	}
743
	close(fd);
744
745
	/*
746
	 * Use all 512 bits of hash output
747
	 */
748
	memcpy(&b[0], &s.sha_out[0], 64);
749
	memset(&s, 0, sizeof(s));
750
751
	/*
752
	 * Read 32 bytes of random entropy from kernel's random
753
	 * number generator. This code may be executed early on startup
754
	 * scripts and amount of random entropy may be non-existent.
755
	 * SHA-512 of old fs data is used as workaround for missing
756
	 * entropy in kernel's random number generator.
757
	 */
758
	if((fd = open("/dev/urandom", O_RDONLY)) == -1) {
759
		fprintf(stderr, _("Error: unable to open /dev/urandom\n"));
760
		return 1;
761
	}
762
	rd_wr_retry(fd, &b[64], 32, 0);
763
764
	/* generate multi-key hashes */
765
	x = 0;
766
	while(x < 65) {
767
		rd_wr_retry(fd, &b[64+32], 16, 0);
768
		sha512_hash_buffer(&b[0], 64+32+16, k, 32);
769
		k += 32;
770
		x++;
771
	}
772
773
	close(fd);
774
	memset(&b[0], 0, sizeof(b));
775
	return 0;
776
}
777
778
#if !defined(MAIN)
779
static int loop_fork_mkfs_command(char *device, char *fstype)
780
{
781
	int x, y = 0;
782
	char *a[10], *e[1];
783
784
	sync();
785
	if(!(x = fork())) {
786
		if((x = open("/dev/null", O_WRONLY)) >= 0) {
787
			dup2(x, 0);
788
			dup2(x, 1);
789
			dup2(x, 2);
790
			close(x);
791
		}
792
		x = 0;
793
		a[x++] = "mkfs";
794
		a[x++] = "-t";
795
		a[x++] = fstype;
796
		/* mkfs.reiserfs and mkfs.xfs need -f option */
797
		if(!strcmp(fstype, "reiserfs") || !strcmp(fstype, "xfs")) {
798
			a[x++] = "-f";
799
		}
800
		a[x++] = device;
801
		a[x] = 0;
802
		e[0] = 0;
803
		if(setgid(getgid())) exit(1);
804
		if(setuid(getuid())) exit(1);
805
		for(x = 3; x < 1024; x++) {
806
			close(x);
807
		}
808
		execve("/sbin/mkfs", &a[0], &e[0]);
809
		exit(1);
810
	}
811
	if(x == -1) {
812
		fprintf(stderr, _("Error: fork failed\n"));
813
		return 1;
814
	}
815
	waitpid(x, &y, 0);
816
	sync();
817
	if(!WIFEXITED(y) || (WEXITSTATUS(y) != 0)) {
818
		fprintf(stderr, _("Error: encrypted file system mkfs failed\n"));
819
		return 1;
820
	}
821
	return 0;
822
}
823
#endif
824
825
int
826
set_loop(const char *device, const char *file, int *loopro, const char **fstype, unsigned int *AutoChmodPtr, int busyRetVal) {
827
	struct loop_info64 loopinfo;
828
	int fd, ffd, mode, i, errRetVal = 1;
829
	char *pass, *apiName = NULL;
830
	void (*hashFunc)(unsigned char *, int, unsigned char *, int);
831
	unsigned char multiKeyBits[65][32];
832
	int minPassLen = LOOP_PASSWORD_MIN_LENGTH;
833
	int run_mkfs_command = 0;
834
835
	sync();
836
	loopFileName = (char *)file;
837
	multiKeyMode = 0;
838
	mode = (*loopro ? O_RDONLY : O_RDWR);
839
	if ((ffd = open(file, mode)) < 0) {
840
		if (!*loopro && errno == EROFS)
841
			ffd = open(file, mode = O_RDONLY);
842
		if (ffd < 0) {
843
			perror(file);
844
			return 1;
845
		}
846
	}
847
	if ((fd = open(device, mode)) < 0) {
848
		perror (device);
849
		goto close_ffd_return1;
850
	}
851
	*loopro = (mode == O_RDONLY);
852
853
	if (ioctl(fd, LOOP_SET_FD, ffd) < 0) {
854
		if(errno == EBUSY)
855
			errRetVal = busyRetVal;
856
		if((errRetVal != 2) || verbose)
857
			perror("ioctl: LOOP_SET_FD");
858
keyclean_close_fd_ffd_return1:
859
		memset(loopinfo.lo_encrypt_key, 0, sizeof(loopinfo.lo_encrypt_key));
860
		memset(&multiKeyBits[0][0], 0, sizeof(multiKeyBits));
861
		close (fd);
862
close_ffd_return1:
863
		close (ffd);
864
		return errRetVal;
865
	}
866
867
	memset (&loopinfo, 0, sizeof (loopinfo));
868
	strncpy ((char *)loopinfo.lo_file_name, file, LO_NAME_SIZE - 1);
869
	loopinfo.lo_file_name[LO_NAME_SIZE - 1] = 0;
870
	if (loopEncryptionType)
871
		loopinfo.lo_encrypt_type = loop_crypt_type (loopEncryptionType, &loopinfo.lo_encrypt_key_size, &apiName);
872
	if (loopOffsetBytes)
873
		loopinfo.lo_offset = mystrtoull(loopOffsetBytes, 1);
874
	if (loopSizeBytes)
875
		loopinfo.lo_sizelimit = mystrtoull(loopSizeBytes, 0);
876
877
#ifdef MCL_FUTURE
878
	/*
879
	 * Oh-oh, sensitive data coming up. Better lock into memory to prevent
880
	 * passwd etc being swapped out and left somewhere on disk.
881
	 */
882
883
	if(loopinfo.lo_encrypt_type && mlockall(MCL_CURRENT | MCL_FUTURE)) {
884
		perror("memlock");
885
		ioctl (fd, LOOP_CLR_FD, 0);
886
		fprintf(stderr, _("Couldn't lock into memory, exiting.\n"));
887
		exit(1);
888
	}
889
#endif
890
891
	switch (loopinfo.lo_encrypt_type) {
892
	case LO_CRYPT_NONE:
893
		loopinfo.lo_encrypt_key_size = 0;
894
		break;
895
	case LO_CRYPT_XOR:
896
		pass = sGetPass (1, 0);
897
		if(!pass) goto loop_clr_fd_out;
898
		strncpy ((char *)loopinfo.lo_encrypt_key, pass, LO_KEY_SIZE - 1);
899
		loopinfo.lo_encrypt_key[LO_KEY_SIZE - 1] = 0;
900
		loopinfo.lo_encrypt_key_size = strlen((char*)loopinfo.lo_encrypt_key);
901
		break;
902
	case 3:   /* LO_CRYPT_FISH2 */
903
	case 4:   /* LO_CRYPT_BLOW */
904
	case 7:   /* LO_CRYPT_SERPENT */
905
	case 8:   /* LO_CRYPT_MARS */
906
	case 11:  /* LO_CRYPT_RC6 */
907
	case 12:  /* LO_CRYPT_DES_EDE3 */
908
	case 16:  /* LO_CRYPT_AES */
909
	case 18:  /* LO_CRYPT_CRYPTOAPI */
910
		/* set default hash function */
911
		hashFunc = sha256_hash_buffer;
912
		if(loopinfo.lo_encrypt_key_size == 24) hashFunc = sha384_hash_buffer;
913
		if(loopinfo.lo_encrypt_key_size == 32) hashFunc = sha512_hash_buffer;
914
		/* possibly override default hash function */
915
		if(passHashFuncName) {
916
			if(!strcasecmp(passHashFuncName, "sha256")) {
917
				hashFunc = sha256_hash_buffer;
918
			} else if(!strcasecmp(passHashFuncName, "sha384")) {
919
				hashFunc = sha384_hash_buffer;
920
			} else if(!strcasecmp(passHashFuncName, "sha512")) {
921
				hashFunc = sha512_hash_buffer;
922
			} else if(!strcasecmp(passHashFuncName, "rmd160")) {
923
				hashFunc = rmd160HashTwiceWithA;
924
				minPassLen = 1;
925
			} else if(!strcasecmp(passHashFuncName, "unhashed1")) {
926
				hashFunc = unhashed1_key_setup;
927
			} else if(!strcasecmp(passHashFuncName, "unhashed2")) {
928
				hashFunc = unhashed2_key_setup;
929
				minPassLen = 1;
930
			} else if(!strcasecmp(passHashFuncName, "unhashed3") && passFDnumber && !gpgKeyFile) {
931
				/* unhashed3 hash type reads binary key from file descriptor. */
932
				/* This is not compatible with gpgkey= mount option */
933
				if(rd_wr_retry(atoi(passFDnumber), (char *)&loopinfo.lo_encrypt_key[0], LO_KEY_SIZE, 0) < 1) {
934
					fprintf(stderr, _("Error: couldn't read binary key\n"));
935
					goto loop_clr_fd_out;
936
				}
937
				break; /* out of switch(loopinfo.lo_encrypt_type) */
938
			} else if(!strncasecmp(passHashFuncName, "random", 6) && ((passHashFuncName[6] == 0) || (passHashFuncName[6] == '/'))) {
939
				/* random hash type sets up 65 random keys */
940
				/* WARNING! DO NOT USE RANDOM HASH TYPE ON PARTITION WITH EXISTING */
941
				/* IMPORTANT DATA ON IT. RANDOM HASH TYPE WILL DESTROY YOUR DATA.  */
942
				if(loop_create_random_keys((char*)file, loopinfo.lo_offset, loopinfo.lo_sizelimit, *loopro, &multiKeyBits[0][0])) {
943
					goto loop_clr_fd_out;
944
				}
945
				memcpy(&loopinfo.lo_encrypt_key[0], &multiKeyBits[0][0], sizeof(loopinfo.lo_encrypt_key));
946
				run_mkfs_command = multiKeyMode = 1000;
947
				break; /* out of switch(loopinfo.lo_encrypt_type) */
948
			}
949
		}
950
		pass = sGetPass (minPassLen, LOOP_PASSWORD_MIN_LENGTH);
951
		if(!pass) goto loop_clr_fd_out;
952
		i = strlen(pass);
953
		if(hashFunc == unhashed1_key_setup) {
954
			/* this is for compatibility with historic loop-AES version */
955
			loopinfo.lo_encrypt_key_size = 16;             /* 128 bits */
956
			if(i >= 32) loopinfo.lo_encrypt_key_size = 24; /* 192 bits */
957
			if(i >= 43) loopinfo.lo_encrypt_key_size = 32; /* 256 bits */
958
		}
959
		(*hashFunc)((unsigned char *)pass, i, &loopinfo.lo_encrypt_key[0], sizeof(loopinfo.lo_encrypt_key));
960
		if(multiKeyMode) {
961
			int r = 0, t;
962
			while(r < multiKeyMode) {
963
				t = strlen(multiKeyPass[r]);
964
				(*hashFunc)((unsigned char *)multiKeyPass[r], t, &multiKeyBits[r][0], 32);
965
				memset(multiKeyPass[r], 0, t);
966
				/*
967
				 * MultiKeyMode uses md5 IV. One key mode uses sector IV. Sector IV
968
				 * and md5 IV v2 and v3 are all computed differently. This first key
969
				 * byte XOR with 0x55/0xF4 is needed to cause complete decrypt failure
970
				 * in cases where data is encrypted with one type of IV and decrypted
971
				 * with another type IV. If identical key was used but only IV was
972
				 * computed differently, only first plaintext block of 512 byte CBC
973
				 * chain would decrypt incorrectly and rest would decrypt correctly.
974
				 * Partially correct decryption is dangerous. Decrypting all blocks
975
				 * incorrectly is safer because file system mount will simply fail.
976
				 */
977
				if(multiKeyMode == 65) {
978
					multiKeyBits[r][0] ^= 0xF4; /* version 3 */
979
				} else {
980
					multiKeyBits[r][0] ^= 0x55; /* version 2 */
981
				}
982
				r++;
983
			}
984
		} else if(passIterThousands) {
985
			aes_context ctx;
986
			unsigned long iter = 0;
987
			unsigned char tempkey[32];
988
			/*
989
			 * Set up AES-256 encryption key using same password and hash function
990
			 * as before but with password bit 0 flipped before hashing. That key
991
			 * is then used to encrypt actual loop key 'itercountk' thousand times.
992
			 */
993
			pass[0] ^= 1;
994
			(*hashFunc)((unsigned char *)pass, i, &tempkey[0], 32);
995
			aes_set_key(&ctx, &tempkey[0], 32, 0);
996
			sscanf(passIterThousands, "%lu", &iter);
997
			iter *= 1000;
998
			while(iter > 0) {
999
				/* encrypt both 128bit blocks with AES-256 */
1000
				aes_encrypt(&ctx, &loopinfo.lo_encrypt_key[ 0], &loopinfo.lo_encrypt_key[ 0]);
1001
				aes_encrypt(&ctx, &loopinfo.lo_encrypt_key[16], &loopinfo.lo_encrypt_key[16]);
1002
				/* exchange upper half of first block with lower half of second block */
1003
				memcpy(&tempkey[0], &loopinfo.lo_encrypt_key[8], 8);
1004
				memcpy(&loopinfo.lo_encrypt_key[8], &loopinfo.lo_encrypt_key[16], 8);
1005
				memcpy(&loopinfo.lo_encrypt_key[16], &tempkey[0], 8);
1006
				iter--;
1007
			}
1008
			memset(&ctx, 0, sizeof(ctx));
1009
			memset(&tempkey[0], 0, sizeof(tempkey));
1010
		}
1011
		memset(pass, 0, i);   /* erase original password */
1012
		break;
1013
	default:
1014
		fprintf (stderr, _("Error: don't know how to get key for encryption system %d\n"), loopinfo.lo_encrypt_type);
1015
		goto loop_clr_fd_out;
1016
	}
1017
1018
	if(loInitValue) {
1019
		/* cipher modules are free to do whatever they want with this value */
1020
		i = 0;
1021
		sscanf(loInitValue, "%d", &i);
1022
		loopinfo.lo_init[0] = i;
1023
	}
1024
1025
	/* type 18 == LO_CRYPT_CRYPTOAPI */
1026
	if ((loopinfo.lo_encrypt_type == 18) || (loop_set_status64_ioctl(fd, &loopinfo) < 0)) {
1027
		/* direct cipher interface failed - try CryptoAPI interface now */
1028
		if(!apiName || (try_cryptoapi_loop_interface(fd, &loopinfo, apiName) < 0)) {
1029
			fprintf(stderr, _("ioctl: LOOP_SET_STATUS: %s, requested cipher or key length (%d bits) not supported by kernel\n"), strerror(errno), loopinfo.lo_encrypt_key_size << 3);
1030
			loop_clr_fd_out:
1031
			(void) ioctl (fd, LOOP_CLR_FD, 0);
1032
			goto keyclean_close_fd_ffd_return1;
1033
		}
1034
	}
1035
	if(multiKeyMode >= 65) {
1036
		if(ioctl(fd, LOOP_MULTI_KEY_SETUP_V3, &multiKeyBits[0][0]) < 0) {
1037
			if(multiKeyMode == 1000) goto try_v2_setup;
1038
			perror("ioctl: LOOP_MULTI_KEY_SETUP_V3");
1039
			goto loop_clr_fd_out;
1040
		}
1041
	} else if(multiKeyMode == 64) {
1042
		try_v2_setup:
1043
		if((ioctl(fd, LOOP_MULTI_KEY_SETUP, &multiKeyBits[0][0]) < 0) && (multiKeyMode != 1000)) {
1044
			perror("ioctl: LOOP_MULTI_KEY_SETUP");
1045
			goto loop_clr_fd_out;
1046
		}
1047
	}
1048
1049
	memset(loopinfo.lo_encrypt_key, 0, sizeof(loopinfo.lo_encrypt_key));
1050
	memset(&multiKeyBits[0][0], 0, sizeof(multiKeyBits));
1051
	close (fd);
1052
	close (ffd);
1053
1054
#if !defined(MAIN)
1055
	if(run_mkfs_command && fstype && *fstype && **fstype && (getuid() == 0)) {
1056
		if(!loop_fork_mkfs_command((char *)device, (char *)(*fstype))) {
1057
			/* !strncasecmp(passHashFuncName, "random", 6) test matched */
1058
			/* This reads octal mode for newly created file system root */
1059
			/* directory node from '-o phash=random/1777' mount option. */
1060
			/*                          octal mode--^^^^                */
1061
			sscanf(passHashFuncName + 6, "/%o", AutoChmodPtr);
1062
		} else {
1063
			if((fd = open(device, mode)) >= 0) {
1064
				ioctl(fd, LOOP_CLR_FD, 0);
1065
				close(fd);
1066
				return 1;
1067
			}
1068
		}
1069
	}
1070
#endif
1071
1072
	if (verbose > 1)
1073
		printf(_("set_loop(%s,%s): success\n"), device, file);
1074
	return 0;
1075
}
1076
1077
#ifdef MAIN
1078
1079
#include <getopt.h>
1080
#include <stdarg.h>
1081
1082
int verbose = 0;
1083
static char *progname;
1084
1085
static void
1086
usage(void) {
1087
	fprintf(stderr, _("usage:\n\
1088
  %s [options] loop_device file        # setup\n\
1089
  %s -F [options] loop_device [file]   # setup, read /etc/fstab\n\
1090
  %s loop_device                       # give info\n\
1091
  %s -a                                # give info of all loops\n\
1092
  %s -f                                # show next free loop device\n\
1093
  %s -d loop_device                    # delete\n\
1094
  %s -R loop_device                    # resize\n\
1095
options:  -e encryption  -o offset  -s sizelimit  -p passwdfd  -T  -S pseed\n\
1096
          -H phash  -I loinit  -K gpgkey  -G gpghome  -C itercountk  -v  -r\n\
1097
          -P cleartextkey\n"),
1098
		progname, progname, progname, progname, progname, progname, progname);
1099
	exit(1);
1100
}
1101
1102
void
1103
show_all_loops(void)
1104
{
1105
	char dev[20];
1106
	char *lfmt[] = { "/dev/loop%d", "/dev/loop/%d" };
1107
	int i, j, fd, x;
1108
	struct stat statbuf;
1109
1110
	for(i = 0; i < 256; i++) {
1111
		for(j = (sizeof(lfmt) / sizeof(lfmt[0])) - 1; j >= 0; j--) {
1112
			sprintf(dev, lfmt[j], i);
1113
			if(stat(dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) {
1114
				fd = open(dev, O_RDONLY);
1115
				if(fd >= 0) {
1116
					x = is_unused_loop_device(fd);
1117
					close(fd);
1118
					if(x == 0) {
1119
						show_loop(dev);
1120
						j = 0;
1121
					}
1122
				}
1123
			}
1124
		}
1125
	}
1126
}
1127
1128
int
1129
read_options_from_fstab(char *loopToFind, char **partitionPtr)
1130
{
1131
	FILE *f;
1132
	struct mntent *m;
1133
	int y, foundMatch = 0;
1134
	char *opt, *fr1, *fr2;
1135
	struct options {
1136
		char *name;	/* name of /etc/fstab option */
1137
		char **dest;	/* destination where it is written to */
1138
		char *line;	/* temp */
1139
	};
1140
	struct options tbl[] = {
1141
		{ "device/file name ",	partitionPtr },	/* must be index 0 */
1142
		{ "loop=",		&loopToFind },	/* must be index 1 */
1143
		{ "offset=",		&loopOffsetBytes },
1144
		{ "sizelimit=",		&loopSizeBytes },
1145
		{ "encryption=",	&loopEncryptionType },
1146
		{ "pseed=",		&passSeedString },
1147
		{ "phash=",		&passHashFuncName },
1148
		{ "loinit=",		&loInitValue },
1149
		{ "gpgkey=",		&gpgKeyFile },
1150
		{ "gpghome=",		&gpgHomeDir },
1151
		{ "cleartextkey=",	&clearTextKeyFile },
1152
		{ "itercountk=",	&passIterThousands },
1153
	};
1154
	struct options *p;
1155
1156
	if (!(f = setmntent("/etc/fstab", "r"))) {
1157
		fprintf(stderr, _("Error: unable to open /etc/fstab for reading\n"));
1158
		return 0;
1159
	}
1160
	while ((m = getmntent(f)) != NULL) {
1161
		tbl[0].line = fr1 = xstrdup(m->mnt_fsname);
1162
		p = &tbl[1];
1163
		do {
1164
			p->line = NULL;
1165
		} while (++p < &tbl[sizeof(tbl) / sizeof(struct options)]);
1166
		opt = fr2 = xstrdup(m->mnt_opts);
1167
		for (opt = strtok(opt, ","); opt != NULL; opt = strtok(NULL, ",")) {
1168
			p = &tbl[1];
1169
			do {
1170
				y = strlen(p->name);
1171
				if (!strncmp(opt, p->name, y))
1172
					p->line = opt + y;
1173
			} while (++p < &tbl[sizeof(tbl) / sizeof(struct options)]);
1174
		}
1175
		if (tbl[1].line && !strcmp(loopToFind, tbl[1].line)) {
1176
			if (++foundMatch > 1) {
1177
				fprintf(stderr, _("Error: multiple loop=%s options found in /etc/fstab\n"), loopToFind);
1178
				endmntent(f);
1179
				return 0;
1180
			}
1181
			p = &tbl[0];
1182
			do {
1183
				if (!*p->dest && p->line) {
1184
					*p->dest = p->line;
1185
					if (verbose)
1186
						printf(_("using %s%s from /etc/fstab\n"), p->name, p->line);
1187
				}
1188
			} while (++p < &tbl[sizeof(tbl) / sizeof(struct options)]);
1189
			fr1 = fr2 = NULL;
1190
		}
1191
		if(fr1) free(fr1);
1192
		if(fr2) free(fr2);
1193
	}
1194
	endmntent(f);
1195
	if (foundMatch == 0) {
1196
		fprintf(stderr, _("Error: loop=%s option not found in /etc/fstab\n"), loopToFind);
1197
	}
1198
	return foundMatch;
1199
}
1200
1201
int
1202
recompute_loop_dev_size(char *device)
1203
{
1204
	int fd, err1 = 0, err2, err3;
1205
	long long oldBytes = -1, newBytes = -1;
1206
1207
	fd = open(device, O_RDONLY);
1208
	if(fd < 0) {
1209
		perror(device);
1210
		return 1;
1211
	}
1212
	if(verbose) {
1213
		err1 = ioctl(fd, BLKGETSIZE64, &oldBytes);
1214
	}
1215
	err2 = ioctl(fd, LOOP_RECOMPUTE_DEV_SIZE, 0);
1216
	if(err2) {
1217
		perror(device);
1218
		goto done1;
1219
	}
1220
	if(verbose) {
1221
		err3 = ioctl(fd, BLKGETSIZE64, &newBytes);
1222
		if(!err1 && (oldBytes >= 0)) {
1223
			printf("%s: old size %lld bytes\n", device, oldBytes);
1224
		}
1225
		if(!err3 && (newBytes >= 0)) {
1226
			printf("%s: new size %lld bytes\n", device, newBytes);
1227
		}
1228
	}
1229
done1:
1230
	close(fd);
1231
	return err2;
1232
}
1233
1234
int
1235
main(int argc, char **argv) {
1236
	char *partitionName = NULL;
1237
	char *device = NULL;
1238
	int delete,find,c,option_a=0,option_F=0,option_R=0,setup_o=0;
1239
	int res = 0;
1240
	int ro = 0;
1241
1242
	setlocale(LC_ALL, "");
1243
	bindtextdomain(PACKAGE, LOCALEDIR);
1244
	textdomain(PACKAGE);
1245
1246
	delete = find = 0;
1247
	progname = argv[0];
1248
	while ((c = getopt(argc,argv,"aC:de:fFG:H:I:K:o:p:P:rRs:S:Tv")) != -1) {
1249
		switch (c) {
1250
		case 'a':		/* show status of all loops */
1251
			option_a = 1;
1252
			break;
1253
		case 'C':
1254
			passIterThousands = optarg;
1255
			setup_o = 1;
1256
			break;
1257
		case 'd':
1258
			delete = 1;
1259
			break;
1260
		case 'e':
1261
			loopEncryptionType = optarg;
1262
			setup_o = 1;
1263
			break;
1264
		case 'f':		/* find free loop */
1265
			find = 1;
1266
			break;
1267
		case 'F':		/* read loop related options from /etc/fstab */
1268
			option_F = 1;
1269
			setup_o = 1;
1270
			break;
1271
		case 'G':               /* GnuPG home dir */
1272
			gpgHomeDir = optarg;
1273
			setup_o = 1;
1274
			break;
1275
		case 'H':               /* passphrase hash function name */
1276
			passHashFuncName = optarg;
1277
			setup_o = 1;
1278
			break;
1279
		case 'I':               /* lo_init[0] value (in string form)  */
1280
			loInitValue = optarg;
1281
			setup_o = 1;
1282
			break;
1283
		case 'K':               /* GnuPG key file name */
1284
			gpgKeyFile = optarg;
1285
			setup_o = 1;
1286
			break;
1287
		case 'o':
1288
			loopOffsetBytes = optarg;
1289
			setup_o = 1;
1290
			break;
1291
		case 'p':               /* read passphrase from given fd */
1292
			passFDnumber = optarg;
1293
			setup_o = 1;
1294
			break;
1295
		case 'P':               /* read passphrase from given file */
1296
			clearTextKeyFile = optarg;
1297
			setup_o = 1;
1298
			break;
1299
		case 'r':               /* read-only */
1300
			ro = 1;
1301
			setup_o = 1;
1302
			break;
1303
		case 'R':               /* recompute loop dev size */
1304
			option_R = 1;
1305
			break;
1306
		case 's':
1307
			loopSizeBytes = optarg;
1308
			setup_o = 1;
1309
			break;
1310
		case 'S':               /* optional seed for passphrase */
1311
			passSeedString = optarg;
1312
			setup_o = 1;
1313
			break;
1314
		case 'T':               /* ask passphrase _twice_ */
1315
			passAskTwice = "T";
1316
			setup_o = 1;
1317
			break;
1318
		case 'v':
1319
			verbose++;
1320
			break;
1321
		default:
1322
			usage();
1323
		}
1324
	}
1325
	if (option_a + delete + option_R + setup_o + find > 1) usage();
1326
	if (option_a) {
1327
		/* show all loops */
1328
		if (argc != optind) usage();
1329
		show_all_loops();
1330
		res = 0;
1331
	} else if (find) {
1332
		if (argc != optind)
1333
			usage();
1334
		device = find_unused_loop_device();
1335
		if (device == NULL)
1336
			return -1;
1337
		if (verbose)
1338
			printf("Loop device is %s\n", device);
1339
		printf("%s\n", device);
1340
		res = 0;
1341
	} else if (delete) {
1342
		/* delete loop */
1343
		if (argc != optind+1) usage();
1344
		res = del_loop(argv[optind]);
1345
	} else if (option_R) {
1346
		/* resize existing loop */
1347
		if (argc != optind+1) usage();
1348
		res = recompute_loop_dev_size(argv[optind]);
1349
	} else if ((argc == optind+1) && !setup_o) {
1350
		/* show one loop */
1351
		res = show_loop(argv[optind]);
1352
	} else {
1353
		/* set up new loop */
1354
		if ((argc < optind+1) || ((argc == optind+1) && !option_F) || (argc > optind+2))
1355
			usage();
1356
		if (argc > optind+1)
1357
			partitionName = argv[optind+1];
1358
		if (option_F && (read_options_from_fstab(argv[optind], &partitionName) != 1))
1359
			exit(1);
1360
		res = set_loop(argv[optind],partitionName,&ro,(const char**)0,(unsigned int *)0, 1);
1361
	}
1362
	return res;
1363
}
1364
#endif
(-)util-linux-2.21.2.orig/mount/lomount.h (+21 lines)
Line 0 Link Here
1
extern int verbose;
2
extern int set_loop(const char *, const char *, int *, const char **, unsigned int *, int);
3
extern int del_loop(const char *);
4
extern int is_loop_device(const char *);
5
extern int is_loop_active(const char *, const char *);
6
extern char * find_unused_loop_device(void);
7
8
extern char *passFDnumber;
9
extern char *passAskTwice;
10
extern char *passSeedString;
11
extern char *passHashFuncName;
12
extern char *passIterThousands;
13
extern char *loInitValue;
14
extern char *gpgKeyFile;
15
extern char *gpgHomeDir;
16
extern char *clearTextKeyFile;
17
extern char *loopOffsetBytes;
18
extern char *loopSizeBytes;
19
extern char *loopEncryptionType;
20
21
extern int loopfile_used_with(char *devname, const char *filename, unsigned long long offset);
(-)util-linux-2.21.2.orig/mount/loop.c (+221 lines)
Line 0 Link Here
1
/*
2
 *  loop.c
3
 *
4
 *  Copyright 2003 by Jari Ruusu.
5
 *  Redistribution of this file is permitted under the GNU GPL
6
 */
7
8
/* collection of loop helper functions used by losetup, mount and swapon */
9
10
#include <stdio.h>
11
#include <string.h>
12
#include <ctype.h>
13
#include <sys/ioctl.h>
14
#include <sys/types.h>
15
#include <errno.h>
16
#include "loop.h"
17
18
static void convert_info_to_info64(struct loop_info *info, struct loop_info64 *info64)
19
{
20
	memset(info64, 0, sizeof(*info64));
21
	info64->lo_number = info->lo_number;
22
	info64->lo_device = info->lo_device;
23
	info64->lo_inode = info->lo_inode;
24
	info64->lo_rdevice = info->lo_rdevice;
25
	info64->lo_offset = info->lo_offset;
26
	info64->lo_encrypt_type = info->lo_encrypt_type;
27
	info64->lo_encrypt_key_size = info->lo_encrypt_key_size;
28
	info64->lo_flags = info->lo_flags;
29
	info64->lo_init[0] = info->lo_init[0];
30
	info64->lo_init[1] = info->lo_init[1];
31
	info64->lo_sizelimit = 0;
32
	if (info->lo_encrypt_type == 18) /* LO_CRYPT_CRYPTOAPI */
33
		memcpy(info64->lo_crypt_name, info->lo_name, sizeof(info64->lo_crypt_name));
34
	else
35
		memcpy(info64->lo_file_name, info->lo_name, sizeof(info64->lo_file_name));
36
	memcpy(info64->lo_encrypt_key, info->lo_encrypt_key, sizeof(info64->lo_encrypt_key));
37
}
38
39
static int convert_info64_to_info(struct loop_info64 *info64, struct loop_info *info)
40
{
41
	memset(info, 0, sizeof(*info));
42
	info->lo_number = info64->lo_number;
43
	info->lo_device = info64->lo_device;
44
	info->lo_inode = info64->lo_inode;
45
	info->lo_rdevice = info64->lo_rdevice;
46
	info->lo_offset = info64->lo_offset;
47
	info->lo_encrypt_type = info64->lo_encrypt_type;
48
	info->lo_encrypt_key_size = info64->lo_encrypt_key_size;
49
	info->lo_flags = info64->lo_flags;
50
	info->lo_init[0] = info64->lo_init[0];
51
	info->lo_init[1] = info64->lo_init[1];
52
	if (info->lo_encrypt_type == 18) /* LO_CRYPT_CRYPTOAPI */
53
		memcpy(info->lo_name, info64->lo_crypt_name, sizeof(info->lo_name));
54
	else
55
		memcpy(info->lo_name, info64->lo_file_name, sizeof(info->lo_name));
56
	memcpy(info->lo_encrypt_key, info64->lo_encrypt_key, sizeof(info->lo_encrypt_key));
57
58
	/* error in case values were truncated */
59
	if (info->lo_device != info64->lo_device ||
60
	    info->lo_rdevice != info64->lo_rdevice ||
61
	    info->lo_inode != info64->lo_inode ||
62
	    info->lo_offset != info64->lo_offset ||
63
	    info64->lo_sizelimit) {
64
		errno = EOVERFLOW;
65
		return -1;
66
	}
67
	return 0;
68
}
69
70
int loop_set_status64_ioctl(int fd, struct loop_info64 *info64)
71
{
72
	struct loop_info info;
73
	struct loop_info64 tmp;
74
	int r;
75
76
	/*
77
	 * This ugly work around is needed because some
78
	 * Red Hat kernels are using same ioctl code:
79
	 *  	#define LOOP_CHANGE_FD 0x4C04
80
	 * vs.
81
	 *	#define LOOP_SET_STATUS64 0x4C04
82
	 * that is used by modern loop driver.
83
	 *
84
	 * Attempt to detect presense of LOOP_GET_STATUS64
85
	 * ioctl before issuing LOOP_SET_STATUS64 ioctl.
86
	 * Red Hat kernels with above LOOP_CHANGE_FD damage
87
	 * should return -1 and set errno to EINVAL.
88
	 */
89
	r = ioctl(fd, LOOP_GET_STATUS64, &tmp);
90
	memset(&tmp, 0, sizeof(tmp));
91
	if ((r == 0) || (errno != EINVAL)) {
92
		r = ioctl(fd, LOOP_SET_STATUS64, info64);
93
		if (!r)
94
			return 0;
95
	}
96
	r = convert_info64_to_info(info64, &info);
97
	if (!r)
98
		r = ioctl(fd, LOOP_SET_STATUS, &info);
99
100
	/* don't leave copies of encryption key on stack */
101
	memset(&info, 0, sizeof(info));
102
	return r;
103
}
104
105
int loop_get_status64_ioctl(int fd, struct loop_info64 *info64)
106
{
107
	struct loop_info info;
108
	int r;
109
110
	memset(info64, 0, sizeof(*info64));
111
	r = ioctl(fd, LOOP_GET_STATUS64, info64);
112
	if (!r)
113
		return 0;
114
	r = ioctl(fd, LOOP_GET_STATUS, &info);
115
	if (!r)
116
		convert_info_to_info64(&info, info64);
117
118
	/* don't leave copies of encryption key on stack */
119
	memset(&info, 0, sizeof(info));
120
	return r;
121
}
122
123
/* returns: 1=unused 0=busy */
124
int is_unused_loop_device(int fd)
125
{
126
	struct loop_info64 info64;
127
	struct loop_info info;
128
	int r;
129
130
	r = ioctl(fd, LOOP_GET_STATUS64, &info64);
131
	memset(&info64, 0, sizeof(info64));
132
	if (!r)
133
		return 0;
134
	if (errno == ENXIO)
135
		return 1;
136
137
	r = ioctl(fd, LOOP_GET_STATUS, &info);
138
	memset(&info, 0, sizeof(info));
139
	if (!r)
140
		return 0;
141
	if (errno == ENXIO)
142
		return 1;
143
	if (errno == EOVERFLOW)
144
		return 0;
145
	return 1;
146
}
147
148
struct loop_crypt_type_struct loop_crypt_type_tbl[] = {
149
	{  0, 0,  0, "no" },
150
	{  0, 0,  0, "none" },
151
	{  1, 0,  0, "xor" },
152
	{  3, 1, 16, "twofish" },
153
	{  4, 1, 16, "blowfish" },
154
	{  7, 1, 16, "serpent" },
155
	{  8, 1, 16, "mars" },
156
	{ 11, 3, 16, "rc6" },
157
	{ 12, 0, 21, "tripleDES" },
158
	{ 12, 0, 24, "3des" },
159
	{ 12, 0, 24, "des3_ede" },
160
	{ 16, 1, 16, "AES" },
161
	{ -1, 0,  0, NULL }
162
};
163
164
static char *getApiName(char *e, int *len)
165
{
166
	int x, y, z = 1, q = -1;
167
	unsigned char *s;
168
169
	*len = y = 0;
170
	s = (unsigned char *)strdup(e);
171
	if(!s)
172
		return "";
173
	x = strlen((char *)s);
174
	while(x > 0) {
175
		x--;
176
		if(!isdigit(s[x]))
177
			break;
178
		y += (s[x] - '0') * z;
179
		z *= 10;
180
		q = x;
181
	}
182
	while(x >= 0) {
183
		s[x] = tolower(s[x]);
184
		if(s[x] == '-')
185
			s[x] = 0;
186
		x--;
187
	}
188
	if(y >= 40) {
189
		if(q >= 0)
190
			s[q] = 0;
191
		*len = y;
192
	}
193
	return((char *)s);
194
}
195
196
int loop_crypt_type(const char *name, u_int32_t *kbyp, char **apiName)
197
{
198
	int i, k;
199
200
	*apiName = getApiName((char *)name, &k);
201
	if(k < 0)
202
		k = 0;
203
	if(k > 256)
204
		k = 256;
205
	for (i = 0; loop_crypt_type_tbl[i].id != -1; i++) {
206
		if (!strcasecmp (*apiName , loop_crypt_type_tbl[i].name)) {
207
			*kbyp = k ? k >> 3 : loop_crypt_type_tbl[i].keyBytes;
208
			return loop_crypt_type_tbl[i].id;
209
		}
210
	}
211
	*kbyp = 16; /* 128 bits */
212
	return 18; /* LO_CRYPT_CRYPTOAPI */
213
}
214
215
int try_cryptoapi_loop_interface(int fd, struct loop_info64 *loopinfo, char *apiName)
216
{
217
	snprintf((char *)loopinfo->lo_crypt_name, sizeof(loopinfo->lo_crypt_name), "%s-cbc", apiName);
218
	loopinfo->lo_crypt_name[LO_NAME_SIZE - 1] = 0;
219
	loopinfo->lo_encrypt_type = 18; /* LO_CRYPT_CRYPTOAPI */
220
	return(loop_set_status64_ioctl(fd, loopinfo));
221
}
(-)util-linux-2.21.2.orig/mount/loop.h (+87 lines)
Line 0 Link Here
1
/*
2
 *  loop.h
3
 *
4
 *  Copyright 2003 by Jari Ruusu.
5
 *  Redistribution of this file is permitted under the GNU GPL
6
 */
7
8
#ifndef _LOOP_H
9
#define _LOOP_H 1
10
11
#include <sys/types.h>
12
#include <linux/version.h>
13
#include <linux/posix_types.h>
14
15
#define LO_CRYPT_NONE   0
16
#define LO_CRYPT_XOR    1
17
#define LO_CRYPT_DES    2
18
#define LO_CRYPT_CRYPTOAPI 18
19
20
#define LOOP_SET_FD		0x4C00
21
#define LOOP_CLR_FD		0x4C01
22
#define LOOP_SET_STATUS		0x4C02
23
#define LOOP_GET_STATUS		0x4C03
24
#define LOOP_SET_STATUS64	0x4C04
25
#define LOOP_GET_STATUS64	0x4C05
26
#define LOOP_MULTI_KEY_SETUP 	0x4C4D
27
#define LOOP_MULTI_KEY_SETUP_V3	0x4C4E
28
#define LOOP_RECOMPUTE_DEV_SIZE 0x4C52
29
30
#define LO_NAME_SIZE    64
31
#define LO_KEY_SIZE     32
32
33
struct loop_info {
34
	int		lo_number;
35
#if LINUX_VERSION_CODE >= 0x20600
36
	__kernel_old_dev_t lo_device;
37
#else
38
	__kernel_dev_t	lo_device;
39
#endif
40
	unsigned long	lo_inode;
41
#if LINUX_VERSION_CODE >= 0x20600
42
	__kernel_old_dev_t lo_rdevice;
43
#else
44
	__kernel_dev_t	lo_rdevice;
45
#endif
46
	int		lo_offset;
47
	int		lo_encrypt_type;
48
	int		lo_encrypt_key_size;
49
	int		lo_flags;
50
	char		lo_name[LO_NAME_SIZE];
51
	unsigned char	lo_encrypt_key[LO_KEY_SIZE];
52
	unsigned long	lo_init[2];
53
	char		reserved[4];
54
};
55
56
struct loop_info64 {
57
	u_int64_t	lo_device; 		/* ioctl r/o */
58
	u_int64_t	lo_inode; 		/* ioctl r/o */
59
	u_int64_t	lo_rdevice; 		/* ioctl r/o */
60
	u_int64_t	lo_offset;		/* bytes */
61
	u_int64_t	lo_sizelimit;		/* bytes, 0 == max available */
62
	u_int32_t	lo_number;		/* ioctl r/o */
63
	u_int32_t	lo_encrypt_type;
64
	u_int32_t	lo_encrypt_key_size; 	/* ioctl w/o */
65
	u_int32_t	lo_flags;		/* ioctl r/o */
66
	unsigned char	lo_file_name[LO_NAME_SIZE];
67
	unsigned char	lo_crypt_name[LO_NAME_SIZE];
68
	unsigned char	lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
69
	u_int64_t	lo_init[2];
70
};
71
72
extern int loop_set_status64_ioctl(int, struct loop_info64 *);
73
extern int loop_get_status64_ioctl(int, struct loop_info64 *);
74
extern int is_unused_loop_device(int);
75
76
struct loop_crypt_type_struct {
77
	short int id;
78
	unsigned char flags; /* bit0 = show keybits, bit1 = add '-' before keybits */
79
	unsigned char keyBytes;
80
	char *name;
81
};
82
83
extern struct loop_crypt_type_struct loop_crypt_type_tbl[];
84
extern int loop_crypt_type(const char *, u_int32_t *, char **);
85
extern int try_cryptoapi_loop_interface(int, struct loop_info64 *, char *);
86
87
#endif
(-)util-linux-2.21.2.orig/mount/loumount2.c (+70 lines)
Line 0 Link Here
1
#include <stdio.h>
2
#include <string.h>
3
#include <ctype.h>
4
#include <fcntl.h>
5
#include <errno.h>
6
#include <stdlib.h>
7
#include <unistd.h>
8
#include <sys/ioctl.h>
9
#include <sys/stat.h>
10
#include <sys/mman.h>
11
#include <sys/sysmacros.h>
12
#include <inttypes.h>
13
#include <dirent.h>
14
15
#include "loop.h"
16
#include "lomount.h"
17
#include "strutils.h"
18
#include "nls.h"
19
#include "sundries.h"
20
#include "pathnames.h"
21
22
/* check if the loopfile is already associated with the same given
23
 * parameters.
24
 *
25
 * returns:  0 unused / error
26
 *           1 loop device already used
27
 */
28
static int
29
is_associated(int dev, struct stat *file, unsigned long long offset, int isoff)
30
{
31
	struct loop_info64 linfo64;
32
	struct loop_info64 linfo;
33
	int ret = 0;
34
35
	if (ioctl(dev, LOOP_GET_STATUS64, &linfo64) == 0) {
36
		if (file->st_dev == linfo64.lo_device &&
37
	            file->st_ino == linfo64.lo_inode &&
38
		    (isoff == 0 || offset == linfo64.lo_offset))
39
			ret = 1;
40
41
	} else if (ioctl(dev, LOOP_GET_STATUS, &linfo) == 0) {
42
		if (file->st_dev == linfo.lo_device &&
43
	            file->st_ino == linfo.lo_inode &&
44
		    (isoff == 0 || offset == linfo.lo_offset))
45
			ret = 1;
46
	}
47
48
	return ret;
49
}
50
51
int
52
loopfile_used_with(char *devname, const char *filename, unsigned long long offset)
53
{
54
	struct stat statbuf;
55
	int fd, ret;
56
57
	if (!is_loop_device(devname))
58
		return 0;
59
60
	if (stat(filename, &statbuf) == -1)
61
		return 0;
62
63
	fd = open(devname, O_RDONLY);
64
	if (fd == -1)
65
		return 0;
66
67
	ret = is_associated(fd, &statbuf, offset, 1);
68
	close(fd);
69
	return ret;
70
}
(-)util-linux-2.21.2.orig/mount/loumount.c (+60 lines)
Line 0 Link Here
1
/*
2
 *  loumount.c
3
 *
4
 *  This code was extracted to separate file from lomount.c so that umount
5
 *  program doesn't have to link with all loop related setup code
6
 */
7
8
#define LOOPMAJOR      7
9
10
#include <stdio.h>
11
#include <string.h>
12
#include <ctype.h>
13
#include <fcntl.h>
14
#include <errno.h>
15
#include <stdlib.h>
16
#include <unistd.h>
17
#include <pwd.h>
18
#include <sys/types.h>
19
#include <sys/ioctl.h>
20
#include <sys/stat.h>
21
#include <sys/mman.h>
22
#include <sys/sysmacros.h>
23
#include <sys/wait.h>
24
#include <fcntl.h>
25
#include <mntent.h>
26
#include <locale.h>
27
28
#include "loop.h"
29
#include "lomount.h"
30
#include "nls.h"
31
32
int
33
is_loop_device (const char *device) {
34
	struct stat statbuf;
35
36
	return (stat(device, &statbuf) == 0 &&
37
		S_ISBLK(statbuf.st_mode) &&
38
		major(statbuf.st_rdev) == LOOPMAJOR);
39
}
40
41
int 
42
del_loop (const char *device) {
43
	int fd;
44
45
	sync();
46
	if ((fd = open (device, O_RDONLY)) < 0) {
47
		int errsv = errno;
48
		fprintf(stderr, _("loop: can't delete device %s: %s\n"),
49
			device, strerror (errsv));
50
		return 1;
51
	}
52
	if (ioctl (fd, LOOP_CLR_FD, 0) < 0) {
53
		perror ("ioctl: LOOP_CLR_FD");
54
		return 1;
55
	}
56
	close (fd);
57
	if (verbose > 1)
58
		printf(_("del_loop(%s): success\n"), device);
59
	return 0;
60
}
(-)util-linux-2.21.2.orig/mount/Makefile.am (-3 / +3 lines)
Lines 22-28 Link Here
22
		$(top_srcdir)/lib/mangle.c \
22
		$(top_srcdir)/lib/mangle.c \
23
		$(top_srcdir)/lib/at.c \
23
		$(top_srcdir)/lib/at.c \
24
		$(top_srcdir)/lib/sysfs.c \
24
		$(top_srcdir)/lib/sysfs.c \
25
		$(top_srcdir)/lib/loopdev.c \
25
		$(top_srcdir)/lib/xxstrdup.c \
26
		$(top_srcdir)/lib/strutils.c
26
		$(top_srcdir)/lib/strutils.c
27
27
28
# generic flags for all programs
28
# generic flags for all programs
Lines 33-44 Link Here
33
cflags_common = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
33
cflags_common = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
34
ldflags_static = -all-static
34
ldflags_static = -all-static
35
35
36
mount_SOURCES = mount.c $(srcs_mount) $(top_srcdir)/lib/setproctitle.c
36
mount_SOURCES = mount.c $(srcs_mount) lomount.c loumount.c loumount2.c loop.c sha512.c rmd160.c aes.c $(top_srcdir)/lib/setproctitle.c
37
mount_CFLAGS = $(SUID_CFLAGS) $(cflags_common)
37
mount_CFLAGS = $(SUID_CFLAGS) $(cflags_common)
38
mount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
38
mount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
39
mount_LDADD = $(ldadd_common)
39
mount_LDADD = $(ldadd_common)
40
40
41
umount_SOURCES = umount.c $(srcs_mount)
41
umount_SOURCES = umount.c $(srcs_mount) loumount.c loumount2.c
42
umount_CFLAGS = $(SUID_CFLAGS) $(cflags_common)
42
umount_CFLAGS = $(SUID_CFLAGS) $(cflags_common)
43
umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
43
umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
44
umount_LDADD = $(ldadd_common)
44
umount_LDADD = $(ldadd_common)
(-)util-linux-2.21.2.orig/mount/Makefile.in (-62 / +377 lines)
Lines 84-93 Link Here
84
	mount-env.$(OBJEXT) mount-linux_version.$(OBJEXT) \
84
	mount-env.$(OBJEXT) mount-linux_version.$(OBJEXT) \
85
	mount-blkdev.$(OBJEXT) mount-fsprobe.$(OBJEXT) \
85
	mount-blkdev.$(OBJEXT) mount-fsprobe.$(OBJEXT) \
86
	mount-mangle.$(OBJEXT) mount-at.$(OBJEXT) \
86
	mount-mangle.$(OBJEXT) mount-at.$(OBJEXT) \
87
	mount-sysfs.$(OBJEXT) mount-loopdev.$(OBJEXT) \
87
	mount-sysfs.$(OBJEXT) mount-xxstrdup.$(OBJEXT) \
88
	mount-strutils.$(OBJEXT)
88
	mount-strutils.$(OBJEXT)
89
am_mount_OBJECTS = mount-mount.$(OBJEXT) $(am__objects_3) \
89
am_mount_OBJECTS = mount-mount.$(OBJEXT) $(am__objects_3) \
90
	mount-setproctitle.$(OBJEXT)
90
	mount-lomount.$(OBJEXT) mount-loumount.$(OBJEXT) \
91
	mount-loumount2.$(OBJEXT) mount-loop.$(OBJEXT) \
92
	mount-sha512.$(OBJEXT) mount-rmd160.$(OBJEXT) \
93
	mount-aes.$(OBJEXT) mount-setproctitle.$(OBJEXT)
91
mount_OBJECTS = $(am_mount_OBJECTS)
94
mount_OBJECTS = $(am_mount_OBJECTS)
92
am__DEPENDENCIES_1 =
95
am__DEPENDENCIES_1 =
93
@HAVE_SELINUX_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
96
@HAVE_SELINUX_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
Lines 106-113 Link Here
106
	$(top_srcdir)/lib/env.c $(top_srcdir)/lib/linux_version.c \
109
	$(top_srcdir)/lib/env.c $(top_srcdir)/lib/linux_version.c \
107
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
110
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
108
	$(top_srcdir)/lib/mangle.c $(top_srcdir)/lib/at.c \
111
	$(top_srcdir)/lib/mangle.c $(top_srcdir)/lib/at.c \
109
	$(top_srcdir)/lib/sysfs.c $(top_srcdir)/lib/loopdev.c \
112
	$(top_srcdir)/lib/sysfs.c $(top_srcdir)/lib/xxstrdup.c \
110
	$(top_srcdir)/lib/strutils.c $(top_srcdir)/lib/setproctitle.c
113
	$(top_srcdir)/lib/strutils.c lomount.c loumount.c loumount2.c \
114
	loop.c sha512.c rmd160.c aes.c \
115
	$(top_srcdir)/lib/setproctitle.c
111
am__objects_4 = mount_static-sundries.$(OBJEXT) \
116
am__objects_4 = mount_static-sundries.$(OBJEXT) \
112
	mount_static-canonicalize.$(OBJEXT)
117
	mount_static-canonicalize.$(OBJEXT)
113
am__objects_5 = $(am__objects_4) $(am__objects_2) \
118
am__objects_5 = $(am__objects_4) $(am__objects_2) \
Lines 118-127 Link Here
118
	mount_static-linux_version.$(OBJEXT) \
123
	mount_static-linux_version.$(OBJEXT) \
119
	mount_static-blkdev.$(OBJEXT) mount_static-fsprobe.$(OBJEXT) \
124
	mount_static-blkdev.$(OBJEXT) mount_static-fsprobe.$(OBJEXT) \
120
	mount_static-mangle.$(OBJEXT) mount_static-at.$(OBJEXT) \
125
	mount_static-mangle.$(OBJEXT) mount_static-at.$(OBJEXT) \
121
	mount_static-sysfs.$(OBJEXT) mount_static-loopdev.$(OBJEXT) \
126
	mount_static-sysfs.$(OBJEXT) mount_static-xxstrdup.$(OBJEXT) \
122
	mount_static-strutils.$(OBJEXT)
127
	mount_static-strutils.$(OBJEXT)
123
am__objects_6 = mount_static-mount.$(OBJEXT) $(am__objects_5) \
128
am__objects_6 = mount_static-mount.$(OBJEXT) $(am__objects_5) \
124
	mount_static-setproctitle.$(OBJEXT)
129
	mount_static-lomount.$(OBJEXT) mount_static-loumount.$(OBJEXT) \
130
	mount_static-loumount2.$(OBJEXT) mount_static-loop.$(OBJEXT) \
131
	mount_static-sha512.$(OBJEXT) mount_static-rmd160.$(OBJEXT) \
132
	mount_static-aes.$(OBJEXT) mount_static-setproctitle.$(OBJEXT)
125
@HAVE_STATIC_MOUNT_TRUE@am_mount_static_OBJECTS = $(am__objects_6)
133
@HAVE_STATIC_MOUNT_TRUE@am_mount_static_OBJECTS = $(am__objects_6)
126
mount_static_OBJECTS = $(am_mount_static_OBJECTS)
134
mount_static_OBJECTS = $(am_mount_static_OBJECTS)
127
mount_static_DEPENDENCIES = $(am__append_2) $(am__DEPENDENCIES_2) \
135
mount_static_DEPENDENCIES = $(am__append_2) $(am__DEPENDENCIES_2) \
Lines 150-158 Link Here
150
	umount-env.$(OBJEXT) umount-linux_version.$(OBJEXT) \
158
	umount-env.$(OBJEXT) umount-linux_version.$(OBJEXT) \
151
	umount-blkdev.$(OBJEXT) umount-fsprobe.$(OBJEXT) \
159
	umount-blkdev.$(OBJEXT) umount-fsprobe.$(OBJEXT) \
152
	umount-mangle.$(OBJEXT) umount-at.$(OBJEXT) \
160
	umount-mangle.$(OBJEXT) umount-at.$(OBJEXT) \
153
	umount-sysfs.$(OBJEXT) umount-loopdev.$(OBJEXT) \
161
	umount-sysfs.$(OBJEXT) umount-xxstrdup.$(OBJEXT) \
154
	umount-strutils.$(OBJEXT)
162
	umount-strutils.$(OBJEXT)
155
am_umount_OBJECTS = umount-umount.$(OBJEXT) $(am__objects_9)
163
am_umount_OBJECTS = umount-umount.$(OBJEXT) $(am__objects_9) \
164
	umount-loumount.$(OBJEXT) umount-loumount2.$(OBJEXT)
156
umount_OBJECTS = $(am_umount_OBJECTS)
165
umount_OBJECTS = $(am_umount_OBJECTS)
157
umount_DEPENDENCIES = $(ldadd_common) $(am__append_8)
166
umount_DEPENDENCIES = $(ldadd_common) $(am__append_8)
158
umount_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
167
umount_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
Lines 165-172 Link Here
165
	$(top_srcdir)/lib/env.c $(top_srcdir)/lib/linux_version.c \
174
	$(top_srcdir)/lib/env.c $(top_srcdir)/lib/linux_version.c \
166
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
175
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
167
	$(top_srcdir)/lib/mangle.c $(top_srcdir)/lib/at.c \
176
	$(top_srcdir)/lib/mangle.c $(top_srcdir)/lib/at.c \
168
	$(top_srcdir)/lib/sysfs.c $(top_srcdir)/lib/loopdev.c \
177
	$(top_srcdir)/lib/sysfs.c $(top_srcdir)/lib/xxstrdup.c \
169
	$(top_srcdir)/lib/strutils.c
178
	$(top_srcdir)/lib/strutils.c loumount.c loumount2.c
170
am__objects_10 = umount_static-sundries.$(OBJEXT) \
179
am__objects_10 = umount_static-sundries.$(OBJEXT) \
171
	umount_static-canonicalize.$(OBJEXT)
180
	umount_static-canonicalize.$(OBJEXT)
172
am__objects_11 = $(am__objects_10) $(am__objects_2) \
181
am__objects_11 = $(am__objects_10) $(am__objects_2) \
Lines 177-185 Link Here
177
	umount_static-linux_version.$(OBJEXT) \
186
	umount_static-linux_version.$(OBJEXT) \
178
	umount_static-blkdev.$(OBJEXT) umount_static-fsprobe.$(OBJEXT) \
187
	umount_static-blkdev.$(OBJEXT) umount_static-fsprobe.$(OBJEXT) \
179
	umount_static-mangle.$(OBJEXT) umount_static-at.$(OBJEXT) \
188
	umount_static-mangle.$(OBJEXT) umount_static-at.$(OBJEXT) \
180
	umount_static-sysfs.$(OBJEXT) umount_static-loopdev.$(OBJEXT) \
189
	umount_static-sysfs.$(OBJEXT) umount_static-xxstrdup.$(OBJEXT) \
181
	umount_static-strutils.$(OBJEXT)
190
	umount_static-strutils.$(OBJEXT)
182
am__objects_12 = umount_static-umount.$(OBJEXT) $(am__objects_11)
191
am__objects_12 = umount_static-umount.$(OBJEXT) $(am__objects_11) \
192
	umount_static-loumount.$(OBJEXT) \
193
	umount_static-loumount2.$(OBJEXT)
183
@HAVE_STATIC_UMOUNT_TRUE@am_umount_static_OBJECTS = $(am__objects_12)
194
@HAVE_STATIC_UMOUNT_TRUE@am_umount_static_OBJECTS = $(am__objects_12)
184
umount_static_OBJECTS = $(am_umount_static_OBJECTS)
195
umount_static_OBJECTS = $(am_umount_static_OBJECTS)
185
@HAVE_STATIC_UMOUNT_TRUE@umount_static_DEPENDENCIES = $(ldadd_static) \
196
@HAVE_STATIC_UMOUNT_TRUE@umount_static_DEPENDENCIES = $(ldadd_static) \
Lines 264-270 Link Here
264
CYGPATH_W = @CYGPATH_W@
275
CYGPATH_W = @CYGPATH_W@
265
DEFS = @DEFS@
276
DEFS = @DEFS@
266
DEPDIR = @DEPDIR@
277
DEPDIR = @DEPDIR@
267
DLLTOOL = @DLLTOOL@
268
DSYMUTIL = @DSYMUTIL@
278
DSYMUTIL = @DSYMUTIL@
269
DUMPBIN = @DUMPBIN@
279
DUMPBIN = @DUMPBIN@
270
ECHO_C = @ECHO_C@
280
ECHO_C = @ECHO_C@
Lines 303-309 Link Here
303
LTLIBINTL = @LTLIBINTL@
313
LTLIBINTL = @LTLIBINTL@
304
LTLIBOBJS = @LTLIBOBJS@
314
LTLIBOBJS = @LTLIBOBJS@
305
MAKEINFO = @MAKEINFO@
315
MAKEINFO = @MAKEINFO@
306
MANIFEST_TOOL = @MANIFEST_TOOL@
307
MKDIR_P = @MKDIR_P@
316
MKDIR_P = @MKDIR_P@
308
MKINSTALLDIRS = @MKINSTALLDIRS@
317
MKINSTALLDIRS = @MKINSTALLDIRS@
309
MSGFMT = @MSGFMT@
318
MSGFMT = @MSGFMT@
Lines 345-351 Link Here
345
abs_srcdir = @abs_srcdir@
354
abs_srcdir = @abs_srcdir@
346
abs_top_builddir = @abs_top_builddir@
355
abs_top_builddir = @abs_top_builddir@
347
abs_top_srcdir = @abs_top_srcdir@
356
abs_top_srcdir = @abs_top_srcdir@
348
ac_ct_AR = @ac_ct_AR@
349
ac_ct_CC = @ac_ct_CC@
357
ac_ct_CC = @ac_ct_CC@
350
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
358
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
351
am__include = @am__include@
359
am__include = @am__include@
Lines 379-384 Link Here
379
libexecdir = @libexecdir@
387
libexecdir = @libexecdir@
380
localedir = @localedir@
388
localedir = @localedir@
381
localstatedir = @localstatedir@
389
localstatedir = @localstatedir@
390
lt_ECHO = @lt_ECHO@
382
mandir = @mandir@
391
mandir = @mandir@
383
mkdir_p = @mkdir_p@
392
mkdir_p = @mkdir_p@
384
oldincludedir = @oldincludedir@
393
oldincludedir = @oldincludedir@
Lines 453-459 Link Here
453
		$(top_srcdir)/lib/mangle.c \
462
		$(top_srcdir)/lib/mangle.c \
454
		$(top_srcdir)/lib/at.c \
463
		$(top_srcdir)/lib/at.c \
455
		$(top_srcdir)/lib/sysfs.c \
464
		$(top_srcdir)/lib/sysfs.c \
456
		$(top_srcdir)/lib/loopdev.c \
465
		$(top_srcdir)/lib/xxstrdup.c \
457
		$(top_srcdir)/lib/strutils.c
466
		$(top_srcdir)/lib/strutils.c
458
467
459
468
Lines 464-474 Link Here
464
ldadd_static = $(ul_libblkid_la)
473
ldadd_static = $(ul_libblkid_la)
465
cflags_common = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
474
cflags_common = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
466
ldflags_static = -all-static
475
ldflags_static = -all-static
467
mount_SOURCES = mount.c $(srcs_mount) $(top_srcdir)/lib/setproctitle.c
476
mount_SOURCES = mount.c $(srcs_mount) lomount.c loumount.c loumount2.c loop.c sha512.c rmd160.c aes.c $(top_srcdir)/lib/setproctitle.c
468
mount_CFLAGS = $(SUID_CFLAGS) $(cflags_common) $(am__append_7)
477
mount_CFLAGS = $(SUID_CFLAGS) $(cflags_common) $(am__append_7)
469
mount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
478
mount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
470
mount_LDADD = $(ldadd_common) $(am__append_4) $(am__append_6)
479
mount_LDADD = $(ldadd_common) $(am__append_4) $(am__append_6)
471
umount_SOURCES = umount.c $(srcs_mount)
480
umount_SOURCES = umount.c $(srcs_mount) loumount.c loumount2.c
472
umount_CFLAGS = $(SUID_CFLAGS) $(cflags_common) $(am__append_9)
481
umount_CFLAGS = $(SUID_CFLAGS) $(cflags_common) $(am__append_9)
473
umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
482
umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
474
umount_LDADD = $(ldadd_common) $(am__append_8)
483
umount_LDADD = $(ldadd_common) $(am__append_8)
Lines 593-598 Link Here
593
distclean-compile:
602
distclean-compile:
594
	-rm -f *.tab.c
603
	-rm -f *.tab.c
595
604
605
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-aes.Po@am__quote@
596
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-at.Po@am__quote@
606
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-at.Po@am__quote@
597
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-blkdev.Po@am__quote@
607
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-blkdev.Po@am__quote@
598
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-canonicalize.Po@am__quote@
608
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-canonicalize.Po@am__quote@
Lines 602-615 Link Here
602
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-fstab.Po@am__quote@
612
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-fstab.Po@am__quote@
603
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-getusername.Po@am__quote@
613
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-getusername.Po@am__quote@
604
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-linux_version.Po@am__quote@
614
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-linux_version.Po@am__quote@
605
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-loopdev.Po@am__quote@
615
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-lomount.Po@am__quote@
616
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-loop.Po@am__quote@
617
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-loumount.Po@am__quote@
618
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-loumount2.Po@am__quote@
606
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mangle.Po@am__quote@
619
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mangle.Po@am__quote@
607
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mount.Po@am__quote@
620
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mount.Po@am__quote@
608
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mount_mntent.Po@am__quote@
621
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mount_mntent.Po@am__quote@
622
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-rmd160.Po@am__quote@
609
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-setproctitle.Po@am__quote@
623
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-setproctitle.Po@am__quote@
624
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sha512.Po@am__quote@
610
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-strutils.Po@am__quote@
625
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-strutils.Po@am__quote@
611
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sundries.Po@am__quote@
626
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sundries.Po@am__quote@
612
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sysfs.Po@am__quote@
627
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sysfs.Po@am__quote@
628
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-xxstrdup.Po@am__quote@
629
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-aes.Po@am__quote@
613
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-at.Po@am__quote@
630
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-at.Po@am__quote@
614
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-blkdev.Po@am__quote@
631
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-blkdev.Po@am__quote@
615
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-canonicalize.Po@am__quote@
632
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-canonicalize.Po@am__quote@
Lines 619-632 Link Here
619
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-fstab.Po@am__quote@
636
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-fstab.Po@am__quote@
620
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-getusername.Po@am__quote@
637
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-getusername.Po@am__quote@
621
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-linux_version.Po@am__quote@
638
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-linux_version.Po@am__quote@
622
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-loopdev.Po@am__quote@
639
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-lomount.Po@am__quote@
640
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-loop.Po@am__quote@
641
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-loumount.Po@am__quote@
642
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-loumount2.Po@am__quote@
623
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mangle.Po@am__quote@
643
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mangle.Po@am__quote@
624
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mount.Po@am__quote@
644
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mount.Po@am__quote@
625
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mount_mntent.Po@am__quote@
645
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-mount_mntent.Po@am__quote@
646
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-rmd160.Po@am__quote@
626
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-setproctitle.Po@am__quote@
647
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-setproctitle.Po@am__quote@
648
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-sha512.Po@am__quote@
627
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-strutils.Po@am__quote@
649
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-strutils.Po@am__quote@
628
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-sundries.Po@am__quote@
650
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-sundries.Po@am__quote@
629
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-sysfs.Po@am__quote@
651
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-sysfs.Po@am__quote@
652
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_static-xxstrdup.Po@am__quote@
630
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-canonicalize.Po@am__quote@
653
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-canonicalize.Po@am__quote@
631
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-fstab.Po@am__quote@
654
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-fstab.Po@am__quote@
632
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-strutils.Po@am__quote@
655
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtab_lock_test-strutils.Po@am__quote@
Lines 640-652 Link Here
640
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-fstab.Po@am__quote@
663
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-fstab.Po@am__quote@
641
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-getusername.Po@am__quote@
664
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-getusername.Po@am__quote@
642
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-linux_version.Po@am__quote@
665
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-linux_version.Po@am__quote@
643
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-loopdev.Po@am__quote@
666
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-loumount.Po@am__quote@
667
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-loumount2.Po@am__quote@
644
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-mangle.Po@am__quote@
668
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-mangle.Po@am__quote@
645
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-mount_mntent.Po@am__quote@
669
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-mount_mntent.Po@am__quote@
646
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-strutils.Po@am__quote@
670
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-strutils.Po@am__quote@
647
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-sundries.Po@am__quote@
671
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-sundries.Po@am__quote@
648
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-sysfs.Po@am__quote@
672
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-sysfs.Po@am__quote@
649
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-umount.Po@am__quote@
673
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-umount.Po@am__quote@
674
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-xxstrdup.Po@am__quote@
650
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-at.Po@am__quote@
675
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-at.Po@am__quote@
651
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-blkdev.Po@am__quote@
676
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-blkdev.Po@am__quote@
652
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-canonicalize.Po@am__quote@
677
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-canonicalize.Po@am__quote@
Lines 656-668 Link Here
656
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-fstab.Po@am__quote@
681
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-fstab.Po@am__quote@
657
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-getusername.Po@am__quote@
682
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-getusername.Po@am__quote@
658
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-linux_version.Po@am__quote@
683
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-linux_version.Po@am__quote@
659
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-loopdev.Po@am__quote@
684
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-loumount.Po@am__quote@
685
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-loumount2.Po@am__quote@
660
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-mangle.Po@am__quote@
686
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-mangle.Po@am__quote@
661
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-mount_mntent.Po@am__quote@
687
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-mount_mntent.Po@am__quote@
662
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-strutils.Po@am__quote@
688
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-strutils.Po@am__quote@
663
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-sundries.Po@am__quote@
689
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-sundries.Po@am__quote@
664
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-sysfs.Po@am__quote@
690
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-sysfs.Po@am__quote@
665
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-umount.Po@am__quote@
691
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-umount.Po@am__quote@
692
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-xxstrdup.Po@am__quote@
666
693
667
.c.o:
694
.c.o:
668
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
695
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
Lines 912-932 Link Here
912
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
939
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
913
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
940
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
914
941
915
mount-loopdev.o: $(top_srcdir)/lib/loopdev.c
942
mount-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
916
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loopdev.o -MD -MP -MF $(DEPDIR)/mount-loopdev.Tpo -c -o mount-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
943
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-xxstrdup.o -MD -MP -MF $(DEPDIR)/mount-xxstrdup.Tpo -c -o mount-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
917
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loopdev.Tpo $(DEPDIR)/mount-loopdev.Po
944
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-xxstrdup.Tpo $(DEPDIR)/mount-xxstrdup.Po
918
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
945
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
919
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='mount-loopdev.o' libtool=no @AMDEPBACKSLASH@
946
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='mount-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
920
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
947
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
921
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
948
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
922
949
923
mount-loopdev.obj: $(top_srcdir)/lib/loopdev.c
950
mount-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
924
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loopdev.obj -MD -MP -MF $(DEPDIR)/mount-loopdev.Tpo -c -o mount-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
951
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-xxstrdup.obj -MD -MP -MF $(DEPDIR)/mount-xxstrdup.Tpo -c -o mount-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
925
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loopdev.Tpo $(DEPDIR)/mount-loopdev.Po
952
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-xxstrdup.Tpo $(DEPDIR)/mount-xxstrdup.Po
926
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
953
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
927
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='mount-loopdev.obj' libtool=no @AMDEPBACKSLASH@
954
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='mount-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
928
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
955
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
929
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
956
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
930
957
931
mount-strutils.o: $(top_srcdir)/lib/strutils.c
958
mount-strutils.o: $(top_srcdir)/lib/strutils.c
932
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-strutils.o -MD -MP -MF $(DEPDIR)/mount-strutils.Tpo -c -o mount-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
959
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-strutils.o -MD -MP -MF $(DEPDIR)/mount-strutils.Tpo -c -o mount-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
Lines 944-949 Link Here
944
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
971
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
945
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
972
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
946
973
974
mount-lomount.o: lomount.c
975
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-lomount.o -MD -MP -MF $(DEPDIR)/mount-lomount.Tpo -c -o mount-lomount.o `test -f 'lomount.c' || echo '$(srcdir)/'`lomount.c
976
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-lomount.Tpo $(DEPDIR)/mount-lomount.Po
977
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
978
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lomount.c' object='mount-lomount.o' libtool=no @AMDEPBACKSLASH@
979
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
980
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-lomount.o `test -f 'lomount.c' || echo '$(srcdir)/'`lomount.c
981
982
mount-lomount.obj: lomount.c
983
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-lomount.obj -MD -MP -MF $(DEPDIR)/mount-lomount.Tpo -c -o mount-lomount.obj `if test -f 'lomount.c'; then $(CYGPATH_W) 'lomount.c'; else $(CYGPATH_W) '$(srcdir)/lomount.c'; fi`
984
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-lomount.Tpo $(DEPDIR)/mount-lomount.Po
985
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
986
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lomount.c' object='mount-lomount.obj' libtool=no @AMDEPBACKSLASH@
987
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
988
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-lomount.obj `if test -f 'lomount.c'; then $(CYGPATH_W) 'lomount.c'; else $(CYGPATH_W) '$(srcdir)/lomount.c'; fi`
989
990
mount-loumount.o: loumount.c
991
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loumount.o -MD -MP -MF $(DEPDIR)/mount-loumount.Tpo -c -o mount-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
992
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loumount.Tpo $(DEPDIR)/mount-loumount.Po
993
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
994
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='mount-loumount.o' libtool=no @AMDEPBACKSLASH@
995
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
996
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
997
998
mount-loumount.obj: loumount.c
999
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loumount.obj -MD -MP -MF $(DEPDIR)/mount-loumount.Tpo -c -o mount-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1000
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loumount.Tpo $(DEPDIR)/mount-loumount.Po
1001
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1002
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='mount-loumount.obj' libtool=no @AMDEPBACKSLASH@
1003
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1004
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1005
1006
mount-loumount2.o: loumount2.c
1007
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loumount2.o -MD -MP -MF $(DEPDIR)/mount-loumount2.Tpo -c -o mount-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1008
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loumount2.Tpo $(DEPDIR)/mount-loumount2.Po
1009
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1010
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='mount-loumount2.o' libtool=no @AMDEPBACKSLASH@
1011
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1012
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1013
1014
mount-loumount2.obj: loumount2.c
1015
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loumount2.obj -MD -MP -MF $(DEPDIR)/mount-loumount2.Tpo -c -o mount-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1016
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loumount2.Tpo $(DEPDIR)/mount-loumount2.Po
1017
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1018
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='mount-loumount2.obj' libtool=no @AMDEPBACKSLASH@
1019
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1020
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1021
1022
mount-loop.o: loop.c
1023
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loop.o -MD -MP -MF $(DEPDIR)/mount-loop.Tpo -c -o mount-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c
1024
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loop.Tpo $(DEPDIR)/mount-loop.Po
1025
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1026
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loop.c' object='mount-loop.o' libtool=no @AMDEPBACKSLASH@
1027
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1028
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c
1029
1030
mount-loop.obj: loop.c
1031
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-loop.obj -MD -MP -MF $(DEPDIR)/mount-loop.Tpo -c -o mount-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi`
1032
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-loop.Tpo $(DEPDIR)/mount-loop.Po
1033
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1034
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loop.c' object='mount-loop.obj' libtool=no @AMDEPBACKSLASH@
1035
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1036
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi`
1037
1038
mount-sha512.o: sha512.c
1039
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-sha512.o -MD -MP -MF $(DEPDIR)/mount-sha512.Tpo -c -o mount-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c
1040
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-sha512.Tpo $(DEPDIR)/mount-sha512.Po
1041
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1042
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sha512.c' object='mount-sha512.o' libtool=no @AMDEPBACKSLASH@
1043
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1044
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c
1045
1046
mount-sha512.obj: sha512.c
1047
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-sha512.obj -MD -MP -MF $(DEPDIR)/mount-sha512.Tpo -c -o mount-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi`
1048
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-sha512.Tpo $(DEPDIR)/mount-sha512.Po
1049
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1050
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sha512.c' object='mount-sha512.obj' libtool=no @AMDEPBACKSLASH@
1051
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1052
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi`
1053
1054
mount-rmd160.o: rmd160.c
1055
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-rmd160.o -MD -MP -MF $(DEPDIR)/mount-rmd160.Tpo -c -o mount-rmd160.o `test -f 'rmd160.c' || echo '$(srcdir)/'`rmd160.c
1056
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-rmd160.Tpo $(DEPDIR)/mount-rmd160.Po
1057
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1058
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rmd160.c' object='mount-rmd160.o' libtool=no @AMDEPBACKSLASH@
1059
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1060
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-rmd160.o `test -f 'rmd160.c' || echo '$(srcdir)/'`rmd160.c
1061
1062
mount-rmd160.obj: rmd160.c
1063
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-rmd160.obj -MD -MP -MF $(DEPDIR)/mount-rmd160.Tpo -c -o mount-rmd160.obj `if test -f 'rmd160.c'; then $(CYGPATH_W) 'rmd160.c'; else $(CYGPATH_W) '$(srcdir)/rmd160.c'; fi`
1064
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-rmd160.Tpo $(DEPDIR)/mount-rmd160.Po
1065
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1066
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rmd160.c' object='mount-rmd160.obj' libtool=no @AMDEPBACKSLASH@
1067
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1068
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-rmd160.obj `if test -f 'rmd160.c'; then $(CYGPATH_W) 'rmd160.c'; else $(CYGPATH_W) '$(srcdir)/rmd160.c'; fi`
1069
1070
mount-aes.o: aes.c
1071
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-aes.o -MD -MP -MF $(DEPDIR)/mount-aes.Tpo -c -o mount-aes.o `test -f 'aes.c' || echo '$(srcdir)/'`aes.c
1072
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-aes.Tpo $(DEPDIR)/mount-aes.Po
1073
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1074
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='aes.c' object='mount-aes.o' libtool=no @AMDEPBACKSLASH@
1075
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1076
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-aes.o `test -f 'aes.c' || echo '$(srcdir)/'`aes.c
1077
1078
mount-aes.obj: aes.c
1079
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-aes.obj -MD -MP -MF $(DEPDIR)/mount-aes.Tpo -c -o mount-aes.obj `if test -f 'aes.c'; then $(CYGPATH_W) 'aes.c'; else $(CYGPATH_W) '$(srcdir)/aes.c'; fi`
1080
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-aes.Tpo $(DEPDIR)/mount-aes.Po
1081
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1082
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='aes.c' object='mount-aes.obj' libtool=no @AMDEPBACKSLASH@
1083
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1084
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-aes.obj `if test -f 'aes.c'; then $(CYGPATH_W) 'aes.c'; else $(CYGPATH_W) '$(srcdir)/aes.c'; fi`
1085
947
mount-setproctitle.o: $(top_srcdir)/lib/setproctitle.c
1086
mount-setproctitle.o: $(top_srcdir)/lib/setproctitle.c
948
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-setproctitle.o -MD -MP -MF $(DEPDIR)/mount-setproctitle.Tpo -c -o mount-setproctitle.o `test -f '$(top_srcdir)/lib/setproctitle.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/setproctitle.c
1087
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-setproctitle.o -MD -MP -MF $(DEPDIR)/mount-setproctitle.Tpo -c -o mount-setproctitle.o `test -f '$(top_srcdir)/lib/setproctitle.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/setproctitle.c
949
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-setproctitle.Tpo $(DEPDIR)/mount-setproctitle.Po
1088
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount-setproctitle.Tpo $(DEPDIR)/mount-setproctitle.Po
Lines 1184-1204 Link Here
1184
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1323
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1185
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1324
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1186
1325
1187
mount_static-loopdev.o: $(top_srcdir)/lib/loopdev.c
1326
mount_static-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
1188
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loopdev.o -MD -MP -MF $(DEPDIR)/mount_static-loopdev.Tpo -c -o mount_static-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1327
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-xxstrdup.o -MD -MP -MF $(DEPDIR)/mount_static-xxstrdup.Tpo -c -o mount_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1189
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loopdev.Tpo $(DEPDIR)/mount_static-loopdev.Po
1328
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-xxstrdup.Tpo $(DEPDIR)/mount_static-xxstrdup.Po
1190
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1329
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1191
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='mount_static-loopdev.o' libtool=no @AMDEPBACKSLASH@
1330
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='mount_static-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
1192
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1331
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1193
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1332
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1194
1333
1195
mount_static-loopdev.obj: $(top_srcdir)/lib/loopdev.c
1334
mount_static-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
1196
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loopdev.obj -MD -MP -MF $(DEPDIR)/mount_static-loopdev.Tpo -c -o mount_static-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1335
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-xxstrdup.obj -MD -MP -MF $(DEPDIR)/mount_static-xxstrdup.Tpo -c -o mount_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1197
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loopdev.Tpo $(DEPDIR)/mount_static-loopdev.Po
1336
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-xxstrdup.Tpo $(DEPDIR)/mount_static-xxstrdup.Po
1198
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1337
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1199
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='mount_static-loopdev.obj' libtool=no @AMDEPBACKSLASH@
1338
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='mount_static-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
1200
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1339
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1201
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1340
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1202
1341
1203
mount_static-strutils.o: $(top_srcdir)/lib/strutils.c
1342
mount_static-strutils.o: $(top_srcdir)/lib/strutils.c
1204
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-strutils.o -MD -MP -MF $(DEPDIR)/mount_static-strutils.Tpo -c -o mount_static-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
1343
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-strutils.o -MD -MP -MF $(DEPDIR)/mount_static-strutils.Tpo -c -o mount_static-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
Lines 1216-1221 Link Here
1216
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1355
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1217
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1356
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1218
1357
1358
mount_static-lomount.o: lomount.c
1359
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-lomount.o -MD -MP -MF $(DEPDIR)/mount_static-lomount.Tpo -c -o mount_static-lomount.o `test -f 'lomount.c' || echo '$(srcdir)/'`lomount.c
1360
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-lomount.Tpo $(DEPDIR)/mount_static-lomount.Po
1361
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1362
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lomount.c' object='mount_static-lomount.o' libtool=no @AMDEPBACKSLASH@
1363
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1364
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-lomount.o `test -f 'lomount.c' || echo '$(srcdir)/'`lomount.c
1365
1366
mount_static-lomount.obj: lomount.c
1367
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-lomount.obj -MD -MP -MF $(DEPDIR)/mount_static-lomount.Tpo -c -o mount_static-lomount.obj `if test -f 'lomount.c'; then $(CYGPATH_W) 'lomount.c'; else $(CYGPATH_W) '$(srcdir)/lomount.c'; fi`
1368
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-lomount.Tpo $(DEPDIR)/mount_static-lomount.Po
1369
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1370
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lomount.c' object='mount_static-lomount.obj' libtool=no @AMDEPBACKSLASH@
1371
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1372
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-lomount.obj `if test -f 'lomount.c'; then $(CYGPATH_W) 'lomount.c'; else $(CYGPATH_W) '$(srcdir)/lomount.c'; fi`
1373
1374
mount_static-loumount.o: loumount.c
1375
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loumount.o -MD -MP -MF $(DEPDIR)/mount_static-loumount.Tpo -c -o mount_static-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
1376
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loumount.Tpo $(DEPDIR)/mount_static-loumount.Po
1377
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1378
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='mount_static-loumount.o' libtool=no @AMDEPBACKSLASH@
1379
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1380
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
1381
1382
mount_static-loumount.obj: loumount.c
1383
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loumount.obj -MD -MP -MF $(DEPDIR)/mount_static-loumount.Tpo -c -o mount_static-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1384
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loumount.Tpo $(DEPDIR)/mount_static-loumount.Po
1385
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1386
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='mount_static-loumount.obj' libtool=no @AMDEPBACKSLASH@
1387
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1388
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1389
1390
mount_static-loumount2.o: loumount2.c
1391
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loumount2.o -MD -MP -MF $(DEPDIR)/mount_static-loumount2.Tpo -c -o mount_static-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1392
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loumount2.Tpo $(DEPDIR)/mount_static-loumount2.Po
1393
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1394
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='mount_static-loumount2.o' libtool=no @AMDEPBACKSLASH@
1395
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1396
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1397
1398
mount_static-loumount2.obj: loumount2.c
1399
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loumount2.obj -MD -MP -MF $(DEPDIR)/mount_static-loumount2.Tpo -c -o mount_static-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1400
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loumount2.Tpo $(DEPDIR)/mount_static-loumount2.Po
1401
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1402
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='mount_static-loumount2.obj' libtool=no @AMDEPBACKSLASH@
1403
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1404
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1405
1406
mount_static-loop.o: loop.c
1407
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loop.o -MD -MP -MF $(DEPDIR)/mount_static-loop.Tpo -c -o mount_static-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c
1408
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loop.Tpo $(DEPDIR)/mount_static-loop.Po
1409
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1410
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loop.c' object='mount_static-loop.o' libtool=no @AMDEPBACKSLASH@
1411
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1412
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c
1413
1414
mount_static-loop.obj: loop.c
1415
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-loop.obj -MD -MP -MF $(DEPDIR)/mount_static-loop.Tpo -c -o mount_static-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi`
1416
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-loop.Tpo $(DEPDIR)/mount_static-loop.Po
1417
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1418
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loop.c' object='mount_static-loop.obj' libtool=no @AMDEPBACKSLASH@
1419
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1420
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi`
1421
1422
mount_static-sha512.o: sha512.c
1423
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-sha512.o -MD -MP -MF $(DEPDIR)/mount_static-sha512.Tpo -c -o mount_static-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c
1424
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-sha512.Tpo $(DEPDIR)/mount_static-sha512.Po
1425
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1426
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sha512.c' object='mount_static-sha512.o' libtool=no @AMDEPBACKSLASH@
1427
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1428
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c
1429
1430
mount_static-sha512.obj: sha512.c
1431
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-sha512.obj -MD -MP -MF $(DEPDIR)/mount_static-sha512.Tpo -c -o mount_static-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi`
1432
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-sha512.Tpo $(DEPDIR)/mount_static-sha512.Po
1433
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1434
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='sha512.c' object='mount_static-sha512.obj' libtool=no @AMDEPBACKSLASH@
1435
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1436
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi`
1437
1438
mount_static-rmd160.o: rmd160.c
1439
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-rmd160.o -MD -MP -MF $(DEPDIR)/mount_static-rmd160.Tpo -c -o mount_static-rmd160.o `test -f 'rmd160.c' || echo '$(srcdir)/'`rmd160.c
1440
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-rmd160.Tpo $(DEPDIR)/mount_static-rmd160.Po
1441
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1442
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rmd160.c' object='mount_static-rmd160.o' libtool=no @AMDEPBACKSLASH@
1443
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1444
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-rmd160.o `test -f 'rmd160.c' || echo '$(srcdir)/'`rmd160.c
1445
1446
mount_static-rmd160.obj: rmd160.c
1447
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-rmd160.obj -MD -MP -MF $(DEPDIR)/mount_static-rmd160.Tpo -c -o mount_static-rmd160.obj `if test -f 'rmd160.c'; then $(CYGPATH_W) 'rmd160.c'; else $(CYGPATH_W) '$(srcdir)/rmd160.c'; fi`
1448
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-rmd160.Tpo $(DEPDIR)/mount_static-rmd160.Po
1449
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1450
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rmd160.c' object='mount_static-rmd160.obj' libtool=no @AMDEPBACKSLASH@
1451
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1452
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-rmd160.obj `if test -f 'rmd160.c'; then $(CYGPATH_W) 'rmd160.c'; else $(CYGPATH_W) '$(srcdir)/rmd160.c'; fi`
1453
1454
mount_static-aes.o: aes.c
1455
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-aes.o -MD -MP -MF $(DEPDIR)/mount_static-aes.Tpo -c -o mount_static-aes.o `test -f 'aes.c' || echo '$(srcdir)/'`aes.c
1456
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-aes.Tpo $(DEPDIR)/mount_static-aes.Po
1457
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1458
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='aes.c' object='mount_static-aes.o' libtool=no @AMDEPBACKSLASH@
1459
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1460
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-aes.o `test -f 'aes.c' || echo '$(srcdir)/'`aes.c
1461
1462
mount_static-aes.obj: aes.c
1463
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-aes.obj -MD -MP -MF $(DEPDIR)/mount_static-aes.Tpo -c -o mount_static-aes.obj `if test -f 'aes.c'; then $(CYGPATH_W) 'aes.c'; else $(CYGPATH_W) '$(srcdir)/aes.c'; fi`
1464
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-aes.Tpo $(DEPDIR)/mount_static-aes.Po
1465
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1466
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='aes.c' object='mount_static-aes.obj' libtool=no @AMDEPBACKSLASH@
1467
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1468
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -c -o mount_static-aes.obj `if test -f 'aes.c'; then $(CYGPATH_W) 'aes.c'; else $(CYGPATH_W) '$(srcdir)/aes.c'; fi`
1469
1219
mount_static-setproctitle.o: $(top_srcdir)/lib/setproctitle.c
1470
mount_static-setproctitle.o: $(top_srcdir)/lib/setproctitle.c
1220
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-setproctitle.o -MD -MP -MF $(DEPDIR)/mount_static-setproctitle.Tpo -c -o mount_static-setproctitle.o `test -f '$(top_srcdir)/lib/setproctitle.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/setproctitle.c
1471
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_static_CFLAGS) $(CFLAGS) -MT mount_static-setproctitle.o -MD -MP -MF $(DEPDIR)/mount_static-setproctitle.Tpo -c -o mount_static-setproctitle.o `test -f '$(top_srcdir)/lib/setproctitle.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/setproctitle.c
1221
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-setproctitle.Tpo $(DEPDIR)/mount_static-setproctitle.Po
1472
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mount_static-setproctitle.Tpo $(DEPDIR)/mount_static-setproctitle.Po
Lines 1520-1540 Link Here
1520
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1771
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1521
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1772
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1522
1773
1523
umount-loopdev.o: $(top_srcdir)/lib/loopdev.c
1774
umount-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
1524
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loopdev.o -MD -MP -MF $(DEPDIR)/umount-loopdev.Tpo -c -o umount-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1775
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-xxstrdup.o -MD -MP -MF $(DEPDIR)/umount-xxstrdup.Tpo -c -o umount-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1525
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loopdev.Tpo $(DEPDIR)/umount-loopdev.Po
1776
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-xxstrdup.Tpo $(DEPDIR)/umount-xxstrdup.Po
1526
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1777
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1527
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='umount-loopdev.o' libtool=no @AMDEPBACKSLASH@
1778
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='umount-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
1528
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1779
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1529
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1780
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1530
1781
1531
umount-loopdev.obj: $(top_srcdir)/lib/loopdev.c
1782
umount-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
1532
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loopdev.obj -MD -MP -MF $(DEPDIR)/umount-loopdev.Tpo -c -o umount-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1783
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-xxstrdup.obj -MD -MP -MF $(DEPDIR)/umount-xxstrdup.Tpo -c -o umount-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1533
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loopdev.Tpo $(DEPDIR)/umount-loopdev.Po
1784
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-xxstrdup.Tpo $(DEPDIR)/umount-xxstrdup.Po
1534
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1785
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1535
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='umount-loopdev.obj' libtool=no @AMDEPBACKSLASH@
1786
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='umount-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
1536
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1787
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1537
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1788
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1538
1789
1539
umount-strutils.o: $(top_srcdir)/lib/strutils.c
1790
umount-strutils.o: $(top_srcdir)/lib/strutils.c
1540
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-strutils.o -MD -MP -MF $(DEPDIR)/umount-strutils.Tpo -c -o umount-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
1791
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-strutils.o -MD -MP -MF $(DEPDIR)/umount-strutils.Tpo -c -o umount-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
Lines 1552-1557 Link Here
1552
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1803
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1553
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1804
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1554
1805
1806
umount-loumount.o: loumount.c
1807
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loumount.o -MD -MP -MF $(DEPDIR)/umount-loumount.Tpo -c -o umount-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
1808
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loumount.Tpo $(DEPDIR)/umount-loumount.Po
1809
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1810
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='umount-loumount.o' libtool=no @AMDEPBACKSLASH@
1811
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1812
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
1813
1814
umount-loumount.obj: loumount.c
1815
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loumount.obj -MD -MP -MF $(DEPDIR)/umount-loumount.Tpo -c -o umount-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1816
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loumount.Tpo $(DEPDIR)/umount-loumount.Po
1817
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1818
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='umount-loumount.obj' libtool=no @AMDEPBACKSLASH@
1819
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1820
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
1821
1822
umount-loumount2.o: loumount2.c
1823
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loumount2.o -MD -MP -MF $(DEPDIR)/umount-loumount2.Tpo -c -o umount-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1824
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loumount2.Tpo $(DEPDIR)/umount-loumount2.Po
1825
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1826
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='umount-loumount2.o' libtool=no @AMDEPBACKSLASH@
1827
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1828
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
1829
1830
umount-loumount2.obj: loumount2.c
1831
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-loumount2.obj -MD -MP -MF $(DEPDIR)/umount-loumount2.Tpo -c -o umount-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1832
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount-loumount2.Tpo $(DEPDIR)/umount-loumount2.Po
1833
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1834
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='umount-loumount2.obj' libtool=no @AMDEPBACKSLASH@
1835
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1836
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
1837
1555
umount_static-umount.o: umount.c
1838
umount_static-umount.o: umount.c
1556
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-umount.o -MD -MP -MF $(DEPDIR)/umount_static-umount.Tpo -c -o umount_static-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c
1839
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-umount.o -MD -MP -MF $(DEPDIR)/umount_static-umount.Tpo -c -o umount_static-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c
1557
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-umount.Tpo $(DEPDIR)/umount_static-umount.Po
1840
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-umount.Tpo $(DEPDIR)/umount_static-umount.Po
Lines 1776-1796 Link Here
1776
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2059
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1777
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
2060
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1778
2061
1779
umount_static-loopdev.o: $(top_srcdir)/lib/loopdev.c
2062
umount_static-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
1780
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loopdev.o -MD -MP -MF $(DEPDIR)/umount_static-loopdev.Tpo -c -o umount_static-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
2063
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-xxstrdup.o -MD -MP -MF $(DEPDIR)/umount_static-xxstrdup.Tpo -c -o umount_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1781
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loopdev.Tpo $(DEPDIR)/umount_static-loopdev.Po
2064
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-xxstrdup.Tpo $(DEPDIR)/umount_static-xxstrdup.Po
1782
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2065
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1783
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='umount_static-loopdev.o' libtool=no @AMDEPBACKSLASH@
2066
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='umount_static-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
1784
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2067
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1785
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
2068
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1786
2069
1787
umount_static-loopdev.obj: $(top_srcdir)/lib/loopdev.c
2070
umount_static-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
1788
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loopdev.obj -MD -MP -MF $(DEPDIR)/umount_static-loopdev.Tpo -c -o umount_static-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
2071
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-xxstrdup.obj -MD -MP -MF $(DEPDIR)/umount_static-xxstrdup.Tpo -c -o umount_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1789
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loopdev.Tpo $(DEPDIR)/umount_static-loopdev.Po
2072
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-xxstrdup.Tpo $(DEPDIR)/umount_static-xxstrdup.Po
1790
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2073
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1791
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='umount_static-loopdev.obj' libtool=no @AMDEPBACKSLASH@
2074
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='umount_static-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
1792
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2075
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1793
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
2076
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1794
2077
1795
umount_static-strutils.o: $(top_srcdir)/lib/strutils.c
2078
umount_static-strutils.o: $(top_srcdir)/lib/strutils.c
1796
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-strutils.o -MD -MP -MF $(DEPDIR)/umount_static-strutils.Tpo -c -o umount_static-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
2079
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-strutils.o -MD -MP -MF $(DEPDIR)/umount_static-strutils.Tpo -c -o umount_static-strutils.o `test -f '$(top_srcdir)/lib/strutils.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strutils.c
Lines 1808-1813 Link Here
1808
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2091
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1809
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
2092
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1810
2093
2094
umount_static-loumount.o: loumount.c
2095
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loumount.o -MD -MP -MF $(DEPDIR)/umount_static-loumount.Tpo -c -o umount_static-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
2096
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loumount.Tpo $(DEPDIR)/umount_static-loumount.Po
2097
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2098
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='umount_static-loumount.o' libtool=no @AMDEPBACKSLASH@
2099
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2100
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loumount.o `test -f 'loumount.c' || echo '$(srcdir)/'`loumount.c
2101
2102
umount_static-loumount.obj: loumount.c
2103
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loumount.obj -MD -MP -MF $(DEPDIR)/umount_static-loumount.Tpo -c -o umount_static-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
2104
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loumount.Tpo $(DEPDIR)/umount_static-loumount.Po
2105
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2106
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount.c' object='umount_static-loumount.obj' libtool=no @AMDEPBACKSLASH@
2107
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2108
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loumount.obj `if test -f 'loumount.c'; then $(CYGPATH_W) 'loumount.c'; else $(CYGPATH_W) '$(srcdir)/loumount.c'; fi`
2109
2110
umount_static-loumount2.o: loumount2.c
2111
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loumount2.o -MD -MP -MF $(DEPDIR)/umount_static-loumount2.Tpo -c -o umount_static-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
2112
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loumount2.Tpo $(DEPDIR)/umount_static-loumount2.Po
2113
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2114
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='umount_static-loumount2.o' libtool=no @AMDEPBACKSLASH@
2115
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2116
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loumount2.o `test -f 'loumount2.c' || echo '$(srcdir)/'`loumount2.c
2117
2118
umount_static-loumount2.obj: loumount2.c
2119
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -MT umount_static-loumount2.obj -MD -MP -MF $(DEPDIR)/umount_static-loumount2.Tpo -c -o umount_static-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
2120
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/umount_static-loumount2.Tpo $(DEPDIR)/umount_static-loumount2.Po
2121
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
2122
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='loumount2.c' object='umount_static-loumount2.obj' libtool=no @AMDEPBACKSLASH@
2123
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2124
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_static_CFLAGS) $(CFLAGS) -c -o umount_static-loumount2.obj `if test -f 'loumount2.c'; then $(CYGPATH_W) 'loumount2.c'; else $(CYGPATH_W) '$(srcdir)/loumount2.c'; fi`
2125
1811
mostlyclean-libtool:
2126
mostlyclean-libtool:
1812
	-rm -f *.lo
2127
	-rm -f *.lo
1813
2128
(-)util-linux-2.21.2.orig/mount/mount.8 (-7 / +17 lines)
Lines 485-490 Link Here
485
Print a help message.
485
Print a help message.
486
.IP "\fB\-v, \-\-verbose\fP"
486
.IP "\fB\-v, \-\-verbose\fP"
487
Verbose mode.
487
Verbose mode.
488
.IP "\fB\-p \fIpasswdfd\fP"
489
If the mount requires a passphrase to be entered, read it from file
490
descriptor \fIpasswdfd\fP instead of from the terminal. If mount uses
491
encrypted loop device and gpgkey= mount option is not being used (no gpg key
492
file), then mount attempts to read 65 keys from \fIpasswdfd\fP, each key at
493
least 20 characters and separated by newline. If mount successfully reads 64
494
or 65 keys, then loop device is put to multi-key mode. If mount encounters
495
end-of-file before 64 keys are read, then only first key is used in
496
single-key mode.
488
.IP "\fB\-a, \-\-all\fP"
497
.IP "\fB\-a, \-\-all\fP"
489
Mount all filesystems (of the given types) mentioned in
498
Mount all filesystems (of the given types) mentioned in
490
.IR fstab .
499
.IR fstab .
Lines 535-545 Link Here
535
file. This option can be used together with the
544
file. This option can be used together with the
536
.B \-f
545
.B \-f
537
flag for already canonicalized absolut paths.
546
flag for already canonicalized absolut paths.
538
.IP "\fB\-p, \-\-pass\-fd \fInum\fP"
539
In case of a loop mount with encryption, read the passphrase from
540
file descriptor
541
.I num
542
instead of from the terminal.
543
.IP "\fB\-s\fP"
547
.IP "\fB\-s\fP"
544
Tolerate sloppy mount options rather than failing. This will ignore
548
Tolerate sloppy mount options rather than failing. This will ignore
545
mount options not supported by a filesystem type. Not all filesystems
549
mount options not supported by a filesystem type. Not all filesystems
Lines 2708-2720 Link Here
2708
.B "mount -t ext3 /tmp/disk.img /mnt"
2712
.B "mount -t ext3 /tmp/disk.img /mnt"
2709
.sp
2713
.sp
2710
.RE
2714
.RE
2711
This type of mount knows about four options, namely
2715
This type of mount knows about 11 options, namely
2712
.BR loop ", " offset ", " sizelimit " and " encryption ,
2716
.BR loop ", " offset ", " sizelimit ", " encryption ", " pseed ", " phash ", " loinit ", " gpgkey ", " gpghome ", " cleartextkey " and " itercountk
2713
that are really options to
2717
that are really options to
2714
.BR \%losetup (8).
2718
.BR \%losetup (8).
2715
(These options can be used in addition to those specific
2719
(These options can be used in addition to those specific
2716
to the filesystem type.)
2720
to the filesystem type.)
2717
2721
2722
If the mount requires a passphrase, you will be prompted for one unless you
2723
specify a file descriptor to read from instead with the
2724
.BR \-p
2725
command line option, or specify a file name with
2726
.BR cleartextkey
2727
mount option.
2718
Since Linux 2.6.25 is supported auto-destruction of loop devices and
2728
Since Linux 2.6.25 is supported auto-destruction of loop devices and
2719
then any loop device allocated by
2729
then any loop device allocated by
2720
.B mount
2730
.B mount
(-)util-linux-2.21.2.orig/mount/mount.c (-129 / +65 lines)
Lines 10-15 Link Here
10
#include <string.h>
10
#include <string.h>
11
#include <getopt.h>
11
#include <getopt.h>
12
#include <stdio.h>
12
#include <stdio.h>
13
#include <locale.h>
13
14
14
#include <pwd.h>
15
#include <pwd.h>
15
#include <grp.h>
16
#include <grp.h>
Lines 34-40 Link Here
34
#include "sundries.h"
35
#include "sundries.h"
35
#include "mount_mntent.h"
36
#include "mount_mntent.h"
36
#include "fstab.h"
37
#include "fstab.h"
37
#include "loopdev.h"
38
#include "lomount.h"
39
#include "loop.h"
38
#include "linux_version.h"
40
#include "linux_version.h"
39
#include "getusername.h"
41
#include "getusername.h"
40
#include "env.h"
42
#include "env.h"
Lines 83-91 Link Here
83
/* True if (ruid != euid) or (0 != ruid), i.e. only "user" mounts permitted.  */
85
/* True if (ruid != euid) or (0 != ruid), i.e. only "user" mounts permitted.  */
84
static int restricted = 1;
86
static int restricted = 1;
85
87
86
/* Contains the fd to read the passphrase from, if any. */
87
static int pfd = -1;
88
89
#ifdef HAVE_LIBMOUNT_MOUNT
88
#ifdef HAVE_LIBMOUNT_MOUNT
90
static struct libmnt_update *mtab_update;
89
static struct libmnt_update *mtab_update;
91
static char *mtab_opts;
90
static char *mtab_opts;
Lines 213-220 Link Here
213
static int invuser_flags;
212
static int invuser_flags;
214
static int comment_flags;
213
static int comment_flags;
215
214
216
static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_sizelimit,
215
static const char *opt_loopdev, *opt_vfstype,
217
        *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_helper;
216
	*opt_speed, *opt_comment, *opt_uhelper, *opt_helper;
218
217
219
static int is_readonly(const char *node);
218
static int is_readonly(const char *node);
220
static int mounted (const char *spec0, const char *node0, struct mntentchn *fstab_mc);
219
static int mounted (const char *spec0, const char *node0, struct mntentchn *fstab_mc);
Lines 228-236 Link Here
228
} string_opt_map[] = {
227
} string_opt_map[] = {
229
  { "loop=",	0, &opt_loopdev },
228
  { "loop=",	0, &opt_loopdev },
230
  { "vfs=",	1, &opt_vfstype },
229
  { "vfs=",	1, &opt_vfstype },
231
  { "offset=",	0, &opt_offset },
230
  { "pseed=",	1, (const char **)&passSeedString },
232
  { "sizelimit=",  0, &opt_sizelimit },
231
  { "phash=",	0, (const char **)&passHashFuncName },
233
  { "encryption=", 0, &opt_encryption },
232
  { "loinit=",	0, (const char **)&loInitValue },
233
  { "gpgkey=",	0, (const char **)&gpgKeyFile },
234
  { "gpghome=",	0, (const char **)&gpgHomeDir },
235
  { "cleartextkey=", 0, (const char **)&clearTextKeyFile },
236
  { "itercountk=", 1, (const char **)&passIterThousands },
237
  { "offset=",	0, (const char **)&loopOffsetBytes },
238
  { "sizelimit=", 0, (const char **)&loopSizeBytes },
239
  { "encryption=", 0, (const char **)&loopEncryptionType },
234
  { "speed=", 0, &opt_speed },
240
  { "speed=", 0, &opt_speed },
235
  { "comment=", 1, &opt_comment },
241
  { "comment=", 1, &opt_comment },
236
  { "uhelper=", 0, &opt_uhelper },
242
  { "uhelper=", 0, &opt_uhelper },
Lines 277-288 Link Here
277
	if (mount_quiet)
283
	if (mount_quiet)
278
		return;
284
		return;
279
285
286
#if 0
280
	/* users assume backing file name rather than /dev/loopN in
287
	/* users assume backing file name rather than /dev/loopN in
281
	 * mount(8) output if the device has been initialized by mount(8).
288
	 * mount(8) output if the device has been initialized by mount(8).
282
	 */
289
	 */
283
	if (strncmp(me->mnt_fsname, "/dev/loop", 9) == 0 &&
290
	if (strncmp(me->mnt_fsname, "/dev/loop", 9) == 0 &&
284
	    loopdev_is_autoclear(me->mnt_fsname))
291
	    loopdev_is_autoclear(me->mnt_fsname))
285
		fsname = loopdev_get_backing_file(me->mnt_fsname);
292
		fsname = loopdev_get_backing_file(me->mnt_fsname);
293
#endif
286
294
287
	if (!fsname)
295
	if (!fsname)
288
		fsname = (char *) me->mnt_fsname;
296
		fsname = (char *) me->mnt_fsname;
Lines 1197-1204 Link Here
1197
		char *p;
1205
		char *p;
1198
1206
1199
		if (strncmp(mnt->m.mnt_fsname, "/dev/loop", 9) == 0)
1207
		if (strncmp(mnt->m.mnt_fsname, "/dev/loop", 9) == 0)
1200
			res = loopdev_is_used((char *) mnt->m.mnt_fsname,
1208
			res = loopfile_used_with((char *) mnt->m.mnt_fsname,
1201
					loopfile, offset, LOOPDEV_FL_OFFSET);
1209
					loopfile, offset);
1202
1210
1203
		else if (mnt->m.mnt_opts &&
1211
		else if (mnt->m.mnt_opts &&
1204
			 (p = strstr(mnt->m.mnt_opts, "loop=")))
1212
			 (p = strstr(mnt->m.mnt_opts, "loop=")))
Lines 1206-1213 Link Here
1206
			char *dev = xstrdup(p+5);
1214
			char *dev = xstrdup(p+5);
1207
			if ((p = strchr(dev, ',')))
1215
			if ((p = strchr(dev, ',')))
1208
				*p = '\0';
1216
				*p = '\0';
1209
			res =  loopdev_is_used(dev,
1217
			res = loopfile_used_with(dev, loopfile, offset);
1210
					loopfile, offset, LOOPDEV_FL_OFFSET);
1211
			free(dev);
1218
			free(dev);
1212
		}
1219
		}
1213
	}
1220
	}
Lines 1216-1221 Link Here
1216
	return res;
1223
	return res;
1217
}
1224
}
1218
1225
1226
#if 0
1219
static int
1227
static int
1220
parse_offset(const char **opt, uintmax_t *val)
1228
parse_offset(const char **opt, uintmax_t *val)
1221
{
1229
{
Lines 1230-1243 Link Here
1230
	*opt = tmp;
1238
	*opt = tmp;
1231
	return 0;
1239
	return 0;
1232
}
1240
}
1241
#endif
1233
1242
1234
static int
1243
static int
1235
loop_check(const char **spec, const char **type, int *flags,
1244
loop_check(const char **spec, const char **type, int *flags,
1236
	   int *loop, const char **loopdev, const char **loopfile,
1245
	   int *loop, const char **loopdev, const char **loopfile, const char *node, unsigned int *AutoChmodPtr) {
1237
	   const char *node) {
1238
  int looptype;
1246
  int looptype;
1239
  uintmax_t offset = 0, sizelimit = 0;
1240
  struct loopdev_cxt lc;
1241
1247
1242
  /*
1248
  /*
1243
   * In the case of a loop mount, either type is of the form lo@/dev/loop5
1249
   * In the case of a loop mount, either type is of the form lo@/dev/loop5
Lines 1262-1268 Link Here
1262
      *type = opt_vfstype;
1268
      *type = opt_vfstype;
1263
  }
1269
  }
1264
1270
1265
  *loop = ((*flags & MS_LOOP) || *loopdev || opt_offset || opt_sizelimit || opt_encryption);
1271
  *loop = ((*flags & MS_LOOP) || *loopdev || loopOffsetBytes || loopSizeBytes || loopEncryptionType);
1266
  *loopfile = *spec;
1272
  *loopfile = *spec;
1267
1273
1268
  /* Automatically create a loop device from a regular file if a filesystem
1274
  /* Automatically create a loop device from a regular file if a filesystem
Lines 1286-1407 Link Here
1286
    if (fake) {
1292
    if (fake) {
1287
      if (verbose)
1293
      if (verbose)
1288
	printf(_("mount: skipping the setup of a loop device\n"));
1294
	printf(_("mount: skipping the setup of a loop device\n"));
1295
    } else if (*loopdev && is_loop_active(*loopdev, *loopfile)) {
1296
      if (verbose)
1297
       printf(_("mount: skipping the setup of a loop device\n"));
1298
       *spec = *loopdev;
1289
    } else {
1299
    } else {
1290
      int loop_opts = 0;
1300
      int loopro = (*flags & MS_RDONLY);
1291
1301
      int res;
1292
      /* since 2.6.37 we don't have to store backing filename to mtab
1293
       * because kernel provides the name in /sys
1294
       */
1295
      if (get_linux_version() >= KERNEL_VERSION(2, 6, 37) ||
1296
	  mtab_is_writable() == 0) {
1297
1298
	if (verbose)
1299
	  printf(_("mount: enabling autoclear loopdev flag\n"));
1300
	loop_opts = LO_FLAGS_AUTOCLEAR;
1301
      }
1302
1303
      if (*flags & MS_RDONLY)
1304
        loop_opts |= LO_FLAGS_READ_ONLY;
1305
1306
      if (opt_offset && parse_offset(&opt_offset, &offset)) {
1307
        error(_("mount: invalid offset '%s' specified"), opt_offset);
1308
        return EX_FAIL;
1309
      }
1310
      if (opt_sizelimit && parse_offset(&opt_sizelimit, &sizelimit)) {
1311
        error(_("mount: invalid sizelimit '%s' specified"), opt_sizelimit);
1312
        return EX_FAIL;
1313
      }
1314
1315
      if (is_mounted_same_loopfile(node, *loopfile, offset)) {
1316
        error(_("mount: according to mtab %s is already mounted on %s as loop"), *loopfile, node);
1317
        return EX_FAIL;
1318
      }
1319
1320
      loopcxt_init(&lc, 0);
1321
      /* loopcxt_enable_debug(&lc, 1); */
1322
1323
      if (*loopdev && **loopdev)
1324
	loopcxt_set_device(&lc, *loopdev);	/* use loop=<devname> */
1325
1302
1326
      do {
1303
      do {
1327
	int rc;
1304
        if (!*loopdev || !**loopdev)
1328
1305
	  *loopdev = find_unused_loop_device();
1329
        if ((!*loopdev || !**loopdev) && loopcxt_find_unused(&lc) == 0)
1306
	if (!*loopdev)
1330
	    *loopdev = loopcxt_strdup_device(&lc);
1307
	  return EX_SYSERR;	/* no more loop devices */
1331
1332
	if (!*loopdev) {
1333
	  error(_("mount: failed to found free loop device"));
1334
	  loopcxt_deinit(&lc);
1335
	  goto err;	/* no more loop devices */
1336
	}
1337
	if (verbose)
1308
	if (verbose)
1338
	  printf(_("mount: going to use the loop device %s\n"), *loopdev);
1309
	  printf(_("mount: going to use the loop device %s\n"), *loopdev);
1339
1310
1340
	rc = loopcxt_set_backing_file(&lc, *loopfile);
1311
	if ((res = set_loop(*loopdev, *loopfile, &loopro, type, AutoChmodPtr, !opt_loopdev ? 2 : 1))) {
1341
1312
	  if ((res == 2) && !opt_loopdev) {
1342
	if (!rc && offset)
1313
	     /* loop dev has been grabbed by some other process, try again */
1343
	  rc = loopcxt_set_offset(&lc, offset);
1314
	     if (verbose)
1344
	if (!rc && sizelimit)
1315
	       printf(_("mount: loop=%s not available ...trying again\n"), *loopdev);
1345
	  rc = loopcxt_set_sizelimit(&lc, sizelimit);
1316
	     my_free(*loopdev);
1346
	if (!rc)
1317
	     *loopdev = NULL;
1347
	  loopcxt_set_flags(&lc, loop_opts);
1318
	  } else {
1348
1319
	     if (verbose)
1349
	if (rc) {
1320
	       printf(_("mount: failed setting up loop device\n"));
1350
	   error(_("mount: %s: failed to set loopdev attributes"), *loopdev);
1321
	     if (!opt_loopdev) {
1351
	   loopcxt_deinit(&lc);
1322
	       my_free(*loopdev);
1352
	   goto err;
1323
	       *loopdev = NULL;
1353
	}
1324
	     }
1354
1325
	     return EX_FAIL;
1355
	/* setup the device */
1356
	rc = loopcxt_setup_device(&lc);
1357
	if (!rc)
1358
	  break;	/* success */
1359
1360
	if (rc != -EBUSY) {
1361
	  if (verbose)
1362
	    printf(_("mount: failed setting up loop device\n"));
1363
	  if (!opt_loopdev) {
1364
	    my_free(*loopdev);
1365
	    *loopdev = NULL;
1366
	  }
1326
	  }
1367
	  loopcxt_deinit(&lc);
1368
	  goto err;
1369
	}
1327
	}
1370
1371
	if (!opt_loopdev) {
1372
	  if (verbose)
1373
	    printf(_("mount: stolen loop=%s ...trying again\n"), *loopdev);
1374
	    my_free(*loopdev);
1375
	    *loopdev = NULL;
1376
	    continue;
1377
	}
1378
	error(_("mount: stolen loop=%s"), *loopdev);
1379
	loopcxt_deinit(&lc);
1380
	goto err;
1381
1382
      } while (!*loopdev);
1328
      } while (!*loopdev);
1383
1329
1384
      if (verbose > 1)
1330
      if (verbose > 1)
1385
	printf(_("mount: setup loop device successfully\n"));
1331
	printf(_("mount: setup loop device successfully\n"));
1386
      *spec = *loopdev;
1332
      *spec = *loopdev;
1387
1333
      if (loopro)
1388
      if (loopcxt_is_readonly(&lc))
1389
        *flags |= MS_RDONLY;
1334
        *flags |= MS_RDONLY;
1390
1391
      if (loopcxt_is_autoclear(&lc))
1392
        /* Prevent recording loop dev in mtab for cleanup on umount */
1393
        *loop = 0;
1394
1395
      /* We have to keep the device open until mount(2), otherwise it will
1396
       * be auto-cleared by kernel (because LO_FLAGS_AUTOCLEAR) */
1397
      loopcxt_set_fd(&lc, -1, 0);
1398
      loopcxt_deinit(&lc);
1399
    }
1335
    }
1400
  }
1336
  }
1401
1337
1402
  return 0;
1338
  return 0;
1403
err:
1404
  return EX_FAIL;
1405
}
1339
}
1406
1340
1407
1341
Lines 1525-1538 Link Here
1525
#endif /* !HAVE_LIBMOUNT_MOUNT */
1459
#endif /* !HAVE_LIBMOUNT_MOUNT */
1526
1460
1527
static void
1461
static void
1528
set_pfd(char *s) {
1529
	if (!isdigit(*s))
1530
		die(EX_USAGE,
1531
		    _("mount: argument to -p or --pass-fd must be a number"));
1532
	pfd = atoi(optarg);
1533
}
1534
1535
static void
1536
cdrom_setspeed(const char *spec) {
1462
cdrom_setspeed(const char *spec) {
1537
#define CDROM_SELECT_SPEED      0x5322  /* Set the CD-ROM speed */
1463
#define CDROM_SELECT_SPEED      0x5322  /* Set the CD-ROM speed */
1538
	if (opt_speed) {
1464
	if (opt_speed) {
Lines 1604-1609 Link Here
1604
  const char *opts, *spec, *node, *types;
1530
  const char *opts, *spec, *node, *types;
1605
  char *user = 0;
1531
  char *user = 0;
1606
  int loop = 0;
1532
  int loop = 0;
1533
  unsigned int LoopMountAutomaticChmod = 0;
1607
  const char *loopdev = 0, *loopfile = 0;
1534
  const char *loopdev = 0, *loopfile = 0;
1608
  struct stat statbuf;
1535
  struct stat statbuf;
1609
1536
Lines 1648-1654 Link Here
1648
       * stale assignments of files to loop devices. Nasty when used for
1575
       * stale assignments of files to loop devices. Nasty when used for
1649
       * encryption.
1576
       * encryption.
1650
       */
1577
       */
1651
      res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile, node);
1578
      res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile, node, &LoopMountAutomaticChmod);
1652
      if (res)
1579
      if (res)
1653
	  goto out;
1580
	  goto out;
1654
  }
1581
  }
Lines 1707-1713 Link Here
1707
  if (!fake) {
1634
  if (!fake) {
1708
    mnt5_res = guess_fstype_and_mount (spec, node, &types, flags & ~MS_NOSYS,
1635
    mnt5_res = guess_fstype_and_mount (spec, node, &types, flags & ~MS_NOSYS,
1709
				       mount_opts, &special, &status);
1636
				       mount_opts, &special, &status);
1710
1637
    if(!mnt5_res && LoopMountAutomaticChmod && (getuid() == 0)) {
1638
      /*
1639
       * If loop was set up using random keys and new file system
1640
       * was created on the loop device, initial permissions for
1641
       * file system root directory need to be set here.
1642
       */
1643
      if(chmod(node, LoopMountAutomaticChmod)) {
1644
        error (_("Error: encrypted file system chmod() failed"));
1645
      }
1646
    }
1711
    if (special) {
1647
    if (special) {
1712
      block_signals (SIG_UNBLOCK);
1648
      block_signals (SIG_UNBLOCK);
1713
      res = status;
1649
      res = status;
Lines 1767-1773 Link Here
1767
  mnt_err = errno;
1703
  mnt_err = errno;
1768
1704
1769
  if (loop)
1705
  if (loop)
1770
	loopdev_delete(spec);
1706
	del_loop(spec);
1771
1707
1772
  block_signals (SIG_UNBLOCK);
1708
  block_signals (SIG_UNBLOCK);
1773
1709
Lines 2578-2585 Link Here
2578
		case 'O':		/* with -t: mount only if (not) opt */
2514
		case 'O':		/* with -t: mount only if (not) opt */
2579
			test_opts = append_opt(test_opts, optarg, NULL);
2515
			test_opts = append_opt(test_opts, optarg, NULL);
2580
			break;
2516
			break;
2581
		case 'p':		/* fd on which to read passwd */
2517
		case 'p':               /* read passphrase from given fd */
2582
			set_pfd(optarg);
2518
			passFDnumber = optarg;
2583
			break;
2519
			break;
2584
		case 'r':		/* mount readonly */
2520
		case 'r':		/* mount readonly */
2585
			readonly = 1;
2521
			readonly = 1;
(-)util-linux-2.21.2.orig/mount/rmd160.c (+532 lines)
Line 0 Link Here
1
/* rmd160.c  -	RIPE-MD160
2
 *	Copyright (C) 1998 Free Software Foundation, Inc.
3
 */
4
5
/* This file was part of GnuPG. Modified for use within the Linux
6
 * mount utility by Marc Mutz <Marc@Mutz.com>. None of this code is
7
 * by myself. I just removed everything that you don't need when all
8
 * you want to do is to use rmd160_hash_buffer().
9
 * My comments are marked with (mm).  */
10
11
/* GnuPG is free software; you can redistribute it and/or modify
12
 * it under the terms of the GNU General Public License as published by
13
 * the Free Software Foundation; either version 2 of the License, or
14
 * (at your option) any later version.
15
 *
16
 * GnuPG is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */
24
25
#include <string.h> /* (mm) for memcpy */
26
#include <endian.h> /* (mm) for BIG_ENDIAN and BYTE_ORDER */
27
#include "rmd160.h"
28
29
/* (mm) these are used by the original GnuPG file. In order to modify
30
 * that file not too much, we keep the notations. maybe it would be
31
 * better to include linux/types.h and typedef __u32 to u32 and __u8
32
 * to byte?  */
33
typedef unsigned int u32; /* taken from e.g. util-linux's minix.h */
34
typedef unsigned char byte;
35
36
typedef struct {
37
    u32  h0,h1,h2,h3,h4;
38
    u32  nblocks;
39
    byte buf[64];
40
    int  count;
41
} RMD160_CONTEXT;
42
43
/****************
44
 * Rotate a 32 bit integer by n bytes
45
 */
46
#if defined(__GNUC__) && defined(__i386__)
47
static inline u32
48
rol( u32 x, int n)
49
{
50
	__asm__("roll %%cl,%0"
51
		:"=r" (x)
52
		:"0" (x),"c" (n));
53
	return x;
54
}
55
#else
56
  #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
57
#endif
58
59
/*********************************
60
 * RIPEMD-160 is not patented, see (as of 25.10.97)
61
 *   http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
62
 * Note that the code uses Little Endian byteorder, which is good for
63
 * 386 etc, but we must add some conversion when used on a big endian box.
64
 *
65
 *
66
 * Pseudo-code for RIPEMD-160
67
 *
68
 * RIPEMD-160 is an iterative hash function that operates on 32-bit words.
69
 * The round function takes as input a 5-word chaining variable and a 16-word
70
 * message block and maps this to a new chaining variable. All operations are
71
 * defined on 32-bit words. Padding is identical to that of MD4.
72
 *
73
 *
74
 * RIPEMD-160: definitions
75
 *
76
 *
77
 *   nonlinear functions at bit level: exor, mux, -, mux, -
78
 *
79
 *   f(j, x, y, z) = x XOR y XOR z		  (0 <= j <= 15)
80
 *   f(j, x, y, z) = (x AND y) OR (NOT(x) AND z)  (16 <= j <= 31)
81
 *   f(j, x, y, z) = (x OR NOT(y)) XOR z	  (32 <= j <= 47)
82
 *   f(j, x, y, z) = (x AND z) OR (y AND NOT(z))  (48 <= j <= 63)
83
 *   f(j, x, y, z) = x XOR (y OR NOT(z))	  (64 <= j <= 79)
84
 *
85
 *
86
 *   added constants (hexadecimal)
87
 *
88
 *   K(j) = 0x00000000	    (0 <= j <= 15)
89
 *   K(j) = 0x5A827999	   (16 <= j <= 31)	int(2**30 x sqrt(2))
90
 *   K(j) = 0x6ED9EBA1	   (32 <= j <= 47)	int(2**30 x sqrt(3))
91
 *   K(j) = 0x8F1BBCDC	   (48 <= j <= 63)	int(2**30 x sqrt(5))
92
 *   K(j) = 0xA953FD4E	   (64 <= j <= 79)	int(2**30 x sqrt(7))
93
 *   K'(j) = 0x50A28BE6     (0 <= j <= 15)      int(2**30 x cbrt(2))
94
 *   K'(j) = 0x5C4DD124    (16 <= j <= 31)      int(2**30 x cbrt(3))
95
 *   K'(j) = 0x6D703EF3    (32 <= j <= 47)      int(2**30 x cbrt(5))
96
 *   K'(j) = 0x7A6D76E9    (48 <= j <= 63)      int(2**30 x cbrt(7))
97
 *   K'(j) = 0x00000000    (64 <= j <= 79)
98
 *
99
 *
100
 *   selection of message word
101
 *
102
 *   r(j)      = j		      (0 <= j <= 15)
103
 *   r(16..31) = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8
104
 *   r(32..47) = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12
105
 *   r(48..63) = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2
106
 *   r(64..79) = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
107
 *   r0(0..15) = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12
108
 *   r0(16..31)= 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2
109
 *   r0(32..47)= 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13
110
 *   r0(48..63)= 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14
111
 *   r0(64..79)= 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
112
 *
113
 *
114
 *   amount for rotate left (rol)
115
 *
116
 *   s(0..15)  = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8
117
 *   s(16..31) = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12
118
 *   s(32..47) = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5
119
 *   s(48..63) = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12
120
 *   s(64..79) = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
121
 *   s'(0..15) = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6
122
 *   s'(16..31)= 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11
123
 *   s'(32..47)= 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5
124
 *   s'(48..63)= 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8
125
 *   s'(64..79)= 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
126
 *
127
 *
128
 *   initial value (hexadecimal)
129
 *
130
 *   h0 = 0x67452301; h1 = 0xEFCDAB89; h2 = 0x98BADCFE; h3 = 0x10325476;
131
 *							h4 = 0xC3D2E1F0;
132
 *
133
 *
134
 * RIPEMD-160: pseudo-code
135
 *
136
 *   It is assumed that the message after padding consists of t 16-word blocks
137
 *   that will be denoted with X[i][j], with 0 <= i <= t-1 and 0 <= j <= 15.
138
 *   The symbol [+] denotes addition modulo 2**32 and rol_s denotes cyclic left
139
 *   shift (rotate) over s positions.
140
 *
141
 *
142
 *   for i := 0 to t-1 {
143
 *	 A := h0; B := h1; C := h2; D = h3; E = h4;
144
 *	 A' := h0; B' := h1; C' := h2; D' = h3; E' = h4;
145
 *	 for j := 0 to 79 {
146
 *	     T := rol_s(j)(A [+] f(j, B, C, D) [+] X[i][r(j)] [+] K(j)) [+] E;
147
 *	     A := E; E := D; D := rol_10(C); C := B; B := T;
148
 *	     T := rol_s'(j)(A' [+] f(79-j, B', C', D') [+] X[i][r'(j)]
149
						       [+] K'(j)) [+] E';
150
 *	     A' := E'; E' := D'; D' := rol_10(C'); C' := B'; B' := T;
151
 *	 }
152
 *	 T := h1 [+] C [+] D'; h1 := h2 [+] D [+] E'; h2 := h3 [+] E [+] A';
153
 *	 h3 := h4 [+] A [+] B'; h4 := h0 [+] B [+] C'; h0 := T;
154
 *   }
155
 */
156
157
/* Some examples:
158
 * ""                    9c1185a5c5e9fc54612808977ee8f548b2258d31
159
 * "a"                   0bdc9d2d256b3ee9daae347be6f4dc835a467ffe
160
 * "abc"                 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
161
 * "message digest"      5d0689ef49d2fae572b881b123a85ffa21595f36
162
 * "a...z"               f71c27109c692c1b56bbdceb5b9d2865b3708dbc
163
 * "abcdbcde...nopq"     12a053384a9c0c88e405a06c27dcf49ada62eb2b
164
 * "A...Za...z0...9"     b0e20b6e3116640286ed3a87a5713079b21f5189
165
 * 8 times "1234567890"  9b752e45573d4b39f4dbd3323cab82bf63326bfb
166
 * 1 million times "a"   52783243c1697bdbe16d37f97f68f08325dc1528
167
 */
168
169
170
static void
171
rmd160_init( RMD160_CONTEXT *hd )
172
{
173
    hd->h0 = 0x67452301;
174
    hd->h1 = 0xEFCDAB89;
175
    hd->h2 = 0x98BADCFE;
176
    hd->h3 = 0x10325476;
177
    hd->h4 = 0xC3D2E1F0;
178
    hd->nblocks = 0;
179
    hd->count = 0;
180
}
181
182
183
184
/****************
185
 * Transform the message X which consists of 16 32-bit-words
186
 */
187
static void
188
transform( RMD160_CONTEXT *hd, byte *data )
189
{
190
    u32 a,b,c,d,e,aa,bb,cc,dd,ee,t;
191
  #if BYTE_ORDER == BIG_ENDIAN
192
    u32 x[16];
193
    { int i;
194
      byte *p2, *p1;
195
      for(i=0, p1=data, p2=(byte*)x; i < 16; i++, p2 += 4 ) {
196
	p2[3] = *p1++;
197
	p2[2] = *p1++;
198
	p2[1] = *p1++;
199
	p2[0] = *p1++;
200
      }
201
    }
202
  #else
203
   #if 0
204
    u32 *x =(u32*)data;
205
   #else
206
    /* this version is better because it is always aligned;
207
     * The performance penalty on a 586-100 is about 6% which
208
     * is acceptable - because the data is more local it might
209
     * also be possible that this is faster on some machines.
210
     * This function (when compiled with -02 on gcc 2.7.2)
211
     * executes on a 586-100 (39.73 bogomips) at about 1900kb/sec;
212
     * [measured with a 4MB data and "gpgm --print-md rmd160"] */
213
    u32 x[16];
214
    memcpy( x, data, 64 );
215
   #endif
216
  #endif
217
218
219
#define K0  0x00000000
220
#define K1  0x5A827999
221
#define K2  0x6ED9EBA1
222
#define K3  0x8F1BBCDC
223
#define K4  0xA953FD4E
224
#define KK0 0x50A28BE6
225
#define KK1 0x5C4DD124
226
#define KK2 0x6D703EF3
227
#define KK3 0x7A6D76E9
228
#define KK4 0x00000000
229
#define F0(x,y,z)   ( (x) ^ (y) ^ (z) )
230
#define F1(x,y,z)   ( ((x) & (y)) | (~(x) & (z)) )
231
#define F2(x,y,z)   ( ((x) | ~(y)) ^ (z) )
232
#define F3(x,y,z)   ( ((x) & (z)) | ((y) & ~(z)) )
233
#define F4(x,y,z)   ( (x) ^ ((y) | ~(z)) )
234
#define R(a,b,c,d,e,f,k,r,s) do { t = a + f(b,c,d) + k + x[r]; \
235
				  a = rol(t,s) + e;	       \
236
				  c = rol(c,10);	       \
237
				} while(0)
238
239
    /* left lane */
240
    a = hd->h0;
241
    b = hd->h1;
242
    c = hd->h2;
243
    d = hd->h3;
244
    e = hd->h4;
245
    R( a, b, c, d, e, F0, K0,  0, 11 );
246
    R( e, a, b, c, d, F0, K0,  1, 14 );
247
    R( d, e, a, b, c, F0, K0,  2, 15 );
248
    R( c, d, e, a, b, F0, K0,  3, 12 );
249
    R( b, c, d, e, a, F0, K0,  4,  5 );
250
    R( a, b, c, d, e, F0, K0,  5,  8 );
251
    R( e, a, b, c, d, F0, K0,  6,  7 );
252
    R( d, e, a, b, c, F0, K0,  7,  9 );
253
    R( c, d, e, a, b, F0, K0,  8, 11 );
254
    R( b, c, d, e, a, F0, K0,  9, 13 );
255
    R( a, b, c, d, e, F0, K0, 10, 14 );
256
    R( e, a, b, c, d, F0, K0, 11, 15 );
257
    R( d, e, a, b, c, F0, K0, 12,  6 );
258
    R( c, d, e, a, b, F0, K0, 13,  7 );
259
    R( b, c, d, e, a, F0, K0, 14,  9 );
260
    R( a, b, c, d, e, F0, K0, 15,  8 );
261
    R( e, a, b, c, d, F1, K1,  7,  7 );
262
    R( d, e, a, b, c, F1, K1,  4,  6 );
263
    R( c, d, e, a, b, F1, K1, 13,  8 );
264
    R( b, c, d, e, a, F1, K1,  1, 13 );
265
    R( a, b, c, d, e, F1, K1, 10, 11 );
266
    R( e, a, b, c, d, F1, K1,  6,  9 );
267
    R( d, e, a, b, c, F1, K1, 15,  7 );
268
    R( c, d, e, a, b, F1, K1,  3, 15 );
269
    R( b, c, d, e, a, F1, K1, 12,  7 );
270
    R( a, b, c, d, e, F1, K1,  0, 12 );
271
    R( e, a, b, c, d, F1, K1,  9, 15 );
272
    R( d, e, a, b, c, F1, K1,  5,  9 );
273
    R( c, d, e, a, b, F1, K1,  2, 11 );
274
    R( b, c, d, e, a, F1, K1, 14,  7 );
275
    R( a, b, c, d, e, F1, K1, 11, 13 );
276
    R( e, a, b, c, d, F1, K1,  8, 12 );
277
    R( d, e, a, b, c, F2, K2,  3, 11 );
278
    R( c, d, e, a, b, F2, K2, 10, 13 );
279
    R( b, c, d, e, a, F2, K2, 14,  6 );
280
    R( a, b, c, d, e, F2, K2,  4,  7 );
281
    R( e, a, b, c, d, F2, K2,  9, 14 );
282
    R( d, e, a, b, c, F2, K2, 15,  9 );
283
    R( c, d, e, a, b, F2, K2,  8, 13 );
284
    R( b, c, d, e, a, F2, K2,  1, 15 );
285
    R( a, b, c, d, e, F2, K2,  2, 14 );
286
    R( e, a, b, c, d, F2, K2,  7,  8 );
287
    R( d, e, a, b, c, F2, K2,  0, 13 );
288
    R( c, d, e, a, b, F2, K2,  6,  6 );
289
    R( b, c, d, e, a, F2, K2, 13,  5 );
290
    R( a, b, c, d, e, F2, K2, 11, 12 );
291
    R( e, a, b, c, d, F2, K2,  5,  7 );
292
    R( d, e, a, b, c, F2, K2, 12,  5 );
293
    R( c, d, e, a, b, F3, K3,  1, 11 );
294
    R( b, c, d, e, a, F3, K3,  9, 12 );
295
    R( a, b, c, d, e, F3, K3, 11, 14 );
296
    R( e, a, b, c, d, F3, K3, 10, 15 );
297
    R( d, e, a, b, c, F3, K3,  0, 14 );
298
    R( c, d, e, a, b, F3, K3,  8, 15 );
299
    R( b, c, d, e, a, F3, K3, 12,  9 );
300
    R( a, b, c, d, e, F3, K3,  4,  8 );
301
    R( e, a, b, c, d, F3, K3, 13,  9 );
302
    R( d, e, a, b, c, F3, K3,  3, 14 );
303
    R( c, d, e, a, b, F3, K3,  7,  5 );
304
    R( b, c, d, e, a, F3, K3, 15,  6 );
305
    R( a, b, c, d, e, F3, K3, 14,  8 );
306
    R( e, a, b, c, d, F3, K3,  5,  6 );
307
    R( d, e, a, b, c, F3, K3,  6,  5 );
308
    R( c, d, e, a, b, F3, K3,  2, 12 );
309
    R( b, c, d, e, a, F4, K4,  4,  9 );
310
    R( a, b, c, d, e, F4, K4,  0, 15 );
311
    R( e, a, b, c, d, F4, K4,  5,  5 );
312
    R( d, e, a, b, c, F4, K4,  9, 11 );
313
    R( c, d, e, a, b, F4, K4,  7,  6 );
314
    R( b, c, d, e, a, F4, K4, 12,  8 );
315
    R( a, b, c, d, e, F4, K4,  2, 13 );
316
    R( e, a, b, c, d, F4, K4, 10, 12 );
317
    R( d, e, a, b, c, F4, K4, 14,  5 );
318
    R( c, d, e, a, b, F4, K4,  1, 12 );
319
    R( b, c, d, e, a, F4, K4,  3, 13 );
320
    R( a, b, c, d, e, F4, K4,  8, 14 );
321
    R( e, a, b, c, d, F4, K4, 11, 11 );
322
    R( d, e, a, b, c, F4, K4,  6,  8 );
323
    R( c, d, e, a, b, F4, K4, 15,  5 );
324
    R( b, c, d, e, a, F4, K4, 13,  6 );
325
326
    aa = a; bb = b; cc = c; dd = d; ee = e;
327
328
    /* right lane */
329
    a = hd->h0;
330
    b = hd->h1;
331
    c = hd->h2;
332
    d = hd->h3;
333
    e = hd->h4;
334
    R( a, b, c, d, e, F4, KK0,	5,  8);
335
    R( e, a, b, c, d, F4, KK0, 14,  9);
336
    R( d, e, a, b, c, F4, KK0,	7,  9);
337
    R( c, d, e, a, b, F4, KK0,	0, 11);
338
    R( b, c, d, e, a, F4, KK0,	9, 13);
339
    R( a, b, c, d, e, F4, KK0,	2, 15);
340
    R( e, a, b, c, d, F4, KK0, 11, 15);
341
    R( d, e, a, b, c, F4, KK0,	4,  5);
342
    R( c, d, e, a, b, F4, KK0, 13,  7);
343
    R( b, c, d, e, a, F4, KK0,	6,  7);
344
    R( a, b, c, d, e, F4, KK0, 15,  8);
345
    R( e, a, b, c, d, F4, KK0,	8, 11);
346
    R( d, e, a, b, c, F4, KK0,	1, 14);
347
    R( c, d, e, a, b, F4, KK0, 10, 14);
348
    R( b, c, d, e, a, F4, KK0,	3, 12);
349
    R( a, b, c, d, e, F4, KK0, 12,  6);
350
    R( e, a, b, c, d, F3, KK1,	6,  9);
351
    R( d, e, a, b, c, F3, KK1, 11, 13);
352
    R( c, d, e, a, b, F3, KK1,	3, 15);
353
    R( b, c, d, e, a, F3, KK1,	7,  7);
354
    R( a, b, c, d, e, F3, KK1,	0, 12);
355
    R( e, a, b, c, d, F3, KK1, 13,  8);
356
    R( d, e, a, b, c, F3, KK1,	5,  9);
357
    R( c, d, e, a, b, F3, KK1, 10, 11);
358
    R( b, c, d, e, a, F3, KK1, 14,  7);
359
    R( a, b, c, d, e, F3, KK1, 15,  7);
360
    R( e, a, b, c, d, F3, KK1,	8, 12);
361
    R( d, e, a, b, c, F3, KK1, 12,  7);
362
    R( c, d, e, a, b, F3, KK1,	4,  6);
363
    R( b, c, d, e, a, F3, KK1,	9, 15);
364
    R( a, b, c, d, e, F3, KK1,	1, 13);
365
    R( e, a, b, c, d, F3, KK1,	2, 11);
366
    R( d, e, a, b, c, F2, KK2, 15,  9);
367
    R( c, d, e, a, b, F2, KK2,	5,  7);
368
    R( b, c, d, e, a, F2, KK2,	1, 15);
369
    R( a, b, c, d, e, F2, KK2,	3, 11);
370
    R( e, a, b, c, d, F2, KK2,	7,  8);
371
    R( d, e, a, b, c, F2, KK2, 14,  6);
372
    R( c, d, e, a, b, F2, KK2,	6,  6);
373
    R( b, c, d, e, a, F2, KK2,	9, 14);
374
    R( a, b, c, d, e, F2, KK2, 11, 12);
375
    R( e, a, b, c, d, F2, KK2,	8, 13);
376
    R( d, e, a, b, c, F2, KK2, 12,  5);
377
    R( c, d, e, a, b, F2, KK2,	2, 14);
378
    R( b, c, d, e, a, F2, KK2, 10, 13);
379
    R( a, b, c, d, e, F2, KK2,	0, 13);
380
    R( e, a, b, c, d, F2, KK2,	4,  7);
381
    R( d, e, a, b, c, F2, KK2, 13,  5);
382
    R( c, d, e, a, b, F1, KK3,	8, 15);
383
    R( b, c, d, e, a, F1, KK3,	6,  5);
384
    R( a, b, c, d, e, F1, KK3,	4,  8);
385
    R( e, a, b, c, d, F1, KK3,	1, 11);
386
    R( d, e, a, b, c, F1, KK3,	3, 14);
387
    R( c, d, e, a, b, F1, KK3, 11, 14);
388
    R( b, c, d, e, a, F1, KK3, 15,  6);
389
    R( a, b, c, d, e, F1, KK3,	0, 14);
390
    R( e, a, b, c, d, F1, KK3,	5,  6);
391
    R( d, e, a, b, c, F1, KK3, 12,  9);
392
    R( c, d, e, a, b, F1, KK3,	2, 12);
393
    R( b, c, d, e, a, F1, KK3, 13,  9);
394
    R( a, b, c, d, e, F1, KK3,	9, 12);
395
    R( e, a, b, c, d, F1, KK3,	7,  5);
396
    R( d, e, a, b, c, F1, KK3, 10, 15);
397
    R( c, d, e, a, b, F1, KK3, 14,  8);
398
    R( b, c, d, e, a, F0, KK4, 12,  8);
399
    R( a, b, c, d, e, F0, KK4, 15,  5);
400
    R( e, a, b, c, d, F0, KK4, 10, 12);
401
    R( d, e, a, b, c, F0, KK4,	4,  9);
402
    R( c, d, e, a, b, F0, KK4,	1, 12);
403
    R( b, c, d, e, a, F0, KK4,	5,  5);
404
    R( a, b, c, d, e, F0, KK4,	8, 14);
405
    R( e, a, b, c, d, F0, KK4,	7,  6);
406
    R( d, e, a, b, c, F0, KK4,	6,  8);
407
    R( c, d, e, a, b, F0, KK4,	2, 13);
408
    R( b, c, d, e, a, F0, KK4, 13,  6);
409
    R( a, b, c, d, e, F0, KK4, 14,  5);
410
    R( e, a, b, c, d, F0, KK4,	0, 15);
411
    R( d, e, a, b, c, F0, KK4,	3, 13);
412
    R( c, d, e, a, b, F0, KK4,	9, 11);
413
    R( b, c, d, e, a, F0, KK4, 11, 11);
414
415
416
    t	   = hd->h1 + d + cc;
417
    hd->h1 = hd->h2 + e + dd;
418
    hd->h2 = hd->h3 + a + ee;
419
    hd->h3 = hd->h4 + b + aa;
420
    hd->h4 = hd->h0 + c + bb;
421
    hd->h0 = t;
422
}
423
424
425
/* Update the message digest with the contents
426
 * of INBUF with length INLEN.
427
 */
428
static void
429
rmd160_write( RMD160_CONTEXT *hd, byte *inbuf, size_t inlen)
430
{
431
    if( hd->count == 64 ) { /* flush the buffer */
432
	transform( hd, hd->buf );
433
	hd->count = 0;
434
	hd->nblocks++;
435
    }
436
    if( !inbuf )
437
	return;
438
    if( hd->count ) {
439
	for( ; inlen && hd->count < 64; inlen-- )
440
	    hd->buf[hd->count++] = *inbuf++;
441
	rmd160_write( hd, NULL, 0 );
442
	if( !inlen )
443
	    return;
444
    }
445
446
    while( inlen >= 64 ) {
447
	transform( hd, inbuf );
448
	hd->count = 0;
449
	hd->nblocks++;
450
	inlen -= 64;
451
	inbuf += 64;
452
    }
453
    for( ; inlen && hd->count < 64; inlen-- )
454
	hd->buf[hd->count++] = *inbuf++;
455
}
456
457
/* The routine terminates the computation
458
 */
459
460
static void
461
rmd160_final( RMD160_CONTEXT *hd )
462
{
463
    u32 t, msb, lsb;
464
    byte *p;
465
466
    rmd160_write(hd, NULL, 0); /* flush */;
467
468
    msb = 0;
469
    t = hd->nblocks;
470
    if( (lsb = t << 6) < t ) /* multiply by 64 to make a byte count */
471
	msb++;
472
    msb += t >> 26;
473
    t = lsb;
474
    if( (lsb = t + hd->count) < t ) /* add the count */
475
	msb++;
476
    t = lsb;
477
    if( (lsb = t << 3) < t ) /* multiply by 8 to make a bit count */
478
	msb++;
479
    msb += t >> 29;
480
481
    if( hd->count < 56 ) { /* enough room */
482
	hd->buf[hd->count++] = 0x80; /* pad */
483
	while( hd->count < 56 )
484
	    hd->buf[hd->count++] = 0;  /* pad */
485
    }
486
    else { /* need one extra block */
487
	hd->buf[hd->count++] = 0x80; /* pad character */
488
	while( hd->count < 64 )
489
	    hd->buf[hd->count++] = 0;
490
	rmd160_write(hd, NULL, 0);  /* flush */;
491
	memset(hd->buf, 0, 56 ); /* fill next block with zeroes */
492
    }
493
    /* append the 64 bit count */
494
    hd->buf[56] = lsb	   ;
495
    hd->buf[57] = lsb >>  8;
496
    hd->buf[58] = lsb >> 16;
497
    hd->buf[59] = lsb >> 24;
498
    hd->buf[60] = msb	   ;
499
    hd->buf[61] = msb >>  8;
500
    hd->buf[62] = msb >> 16;
501
    hd->buf[63] = msb >> 24;
502
    transform( hd, hd->buf );
503
504
    p = hd->buf;
505
  #if BYTE_ORDER == BIG_ENDIAN
506
    #define X(a) do { *p++ = hd->h##a	   ; *p++ = hd->h##a >> 8;	\
507
		      *p++ = hd->h##a >> 16; *p++ = hd->h##a >> 24; } while(0)
508
  #else /* little endian */
509
    #define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0)
510
  #endif
511
    X(0);
512
    X(1);
513
    X(2);
514
    X(3);
515
    X(4);
516
  #undef X
517
}
518
519
/****************
520
 * Shortcut functions which puts the hash value of the supplied buffer
521
 * into outbuf which must have a size of 20 bytes.
522
 */
523
void
524
rmd160_hash_buffer( char *outbuf, const char *buffer, size_t length )
525
{
526
    RMD160_CONTEXT hd;
527
528
    rmd160_init( &hd );
529
    rmd160_write( &hd, (byte*)buffer, length );
530
    rmd160_final( &hd );
531
    memcpy( outbuf, hd.buf, 20 );
532
}
(-)util-linux-2.21.2.orig/mount/rmd160.h (+9 lines)
Line 0 Link Here
1
#ifndef RMD160_H
2
#define RMD160_H
3
4
void
5
rmd160_hash_buffer( char *outbuf, const char *buffer, size_t length );
6
7
#endif /*RMD160_H*/
8
9
(-)util-linux-2.21.2.orig/mount/sha512.c (+432 lines)
Line 0 Link Here
1
/*
2
 *  sha512.c
3
 *
4
 *  Written by Jari Ruusu, April 16 2001
5
 *
6
 *  Copyright 2001 by Jari Ruusu.
7
 *  Redistribution of this file is permitted under the GNU Public License.
8
 */
9
10
#include <string.h>
11
#include <sys/types.h>
12
#include "sha512.h"
13
14
/* Define one or more of these. If none is defined, you get all of them */
15
#if !defined(SHA256_NEEDED)&&!defined(SHA512_NEEDED)&&!defined(SHA384_NEEDED)
16
# define SHA256_NEEDED  1
17
# define SHA512_NEEDED  1
18
# define SHA384_NEEDED  1
19
#endif
20
21
#if defined(SHA256_NEEDED)
22
static const u_int32_t sha256_hashInit[8] = {
23
    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c,
24
    0x1f83d9ab, 0x5be0cd19
25
};
26
static const u_int32_t sha256_K[64] = {
27
    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
28
    0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
29
    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
30
    0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
31
    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
32
    0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
33
    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
34
    0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
35
    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
36
    0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
37
    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
38
};
39
#endif
40
41
#if defined(SHA512_NEEDED)
42
static const u_int64_t sha512_hashInit[8] = {
43
    0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL,
44
    0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
45
    0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
46
};
47
#endif
48
49
#if defined(SHA384_NEEDED)
50
static const u_int64_t sha384_hashInit[8] = {
51
    0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL, 0x9159015a3070dd17ULL,
52
    0x152fecd8f70e5939ULL, 0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
53
    0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL
54
};
55
#endif
56
57
#if defined(SHA512_NEEDED) || defined(SHA384_NEEDED)
58
static const u_int64_t sha512_K[80] = {
59
    0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL,
60
    0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
61
    0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL,
62
    0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
63
    0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL,
64
    0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
65
    0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL,
66
    0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
67
    0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL,
68
    0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
69
    0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL,
70
    0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
71
    0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL,
72
    0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
73
    0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL,
74
    0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
75
    0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL,
76
    0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
77
    0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL,
78
    0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
79
    0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL,
80
    0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
81
    0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL,
82
    0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
83
    0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL,
84
    0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
85
    0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL
86
};
87
#endif
88
89
#define Ch(x,y,z)   (((x) & (y)) ^ ((~(x)) & (z)))
90
#define Maj(x,y,z)  (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
91
#define R(x,y)      ((y) >> (x))
92
93
#if defined(SHA256_NEEDED)
94
void sha256_init(sha256_context *ctx)
95
{
96
    memcpy(&ctx->sha_H[0], &sha256_hashInit[0], sizeof(ctx->sha_H));
97
    ctx->sha_blocks = 0;
98
    ctx->sha_bufCnt = 0;
99
}
100
101
#define S(x,y)      (((y) >> (x)) | ((y) << (32 - (x))))
102
#define uSig0(x)    ((S(2,(x))) ^ (S(13,(x))) ^ (S(22,(x))))
103
#define uSig1(x)    ((S(6,(x))) ^ (S(11,(x))) ^ (S(25,(x))))
104
#define lSig0(x)    ((S(7,(x))) ^ (S(18,(x))) ^ (R(3,(x))))
105
#define lSig1(x)    ((S(17,(x))) ^ (S(19,(x))) ^ (R(10,(x))))
106
107
static void sha256_transform(sha256_context *ctx, unsigned char *datap)
108
{
109
    register int    j;
110
    u_int32_t       a, b, c, d, e, f, g, h;
111
    u_int32_t       T1, T2, W[64], Wm2, Wm15;
112
113
    /* read the data, big endian byte order */
114
    j = 0;
115
    do {
116
        W[j] = (((u_int32_t)(datap[0]))<<24) | (((u_int32_t)(datap[1]))<<16) |
117
               (((u_int32_t)(datap[2]))<<8 ) | ((u_int32_t)(datap[3]));
118
        datap += 4;
119
    } while(++j < 16);
120
    
121
    /* initialize variables a...h */
122
    a = ctx->sha_H[0];
123
    b = ctx->sha_H[1];
124
    c = ctx->sha_H[2];
125
    d = ctx->sha_H[3];
126
    e = ctx->sha_H[4];
127
    f = ctx->sha_H[5];
128
    g = ctx->sha_H[6];
129
    h = ctx->sha_H[7];
130
131
    /* apply compression function */
132
    j = 0;
133
    do {
134
        if(j >= 16) {
135
            Wm2 = W[j - 2];
136
            Wm15 = W[j - 15];
137
            W[j] = lSig1(Wm2) + W[j - 7] + lSig0(Wm15) + W[j - 16];
138
        }
139
        T1 = h + uSig1(e) + Ch(e,f,g) + sha256_K[j] + W[j];
140
        T2 = uSig0(a) + Maj(a,b,c);
141
        h = g; g = f; f = e;
142
        e = d + T1;
143
        d = c; c = b; b = a;
144
        a = T1 + T2;
145
    } while(++j < 64);
146
147
    /* compute intermediate hash value */
148
    ctx->sha_H[0] += a;
149
    ctx->sha_H[1] += b;
150
    ctx->sha_H[2] += c;
151
    ctx->sha_H[3] += d;
152
    ctx->sha_H[4] += e;
153
    ctx->sha_H[5] += f;
154
    ctx->sha_H[6] += g;
155
    ctx->sha_H[7] += h;
156
157
    ctx->sha_blocks++;
158
}
159
160
void sha256_write(sha256_context *ctx, unsigned char *datap, int length)
161
{
162
    while(length > 0) {
163
        if(!ctx->sha_bufCnt) {
164
            while(length >= sizeof(ctx->sha_out)) {
165
                sha256_transform(ctx, datap);
166
                datap += sizeof(ctx->sha_out);
167
                length -= sizeof(ctx->sha_out);
168
            }
169
            if(!length) return;
170
        }
171
        ctx->sha_out[ctx->sha_bufCnt] = *datap++;
172
        length--;
173
        if(++ctx->sha_bufCnt == sizeof(ctx->sha_out)) {
174
            sha256_transform(ctx, &ctx->sha_out[0]);
175
            ctx->sha_bufCnt = 0;
176
        }
177
    }
178
}
179
180
void sha256_final(sha256_context *ctx)
181
{
182
    register int    j;
183
    u_int64_t       bitLength;
184
    u_int32_t       i;
185
    unsigned char   padByte, *datap;
186
187
    bitLength = (ctx->sha_blocks << 9) | (ctx->sha_bufCnt << 3);
188
    padByte = 0x80;
189
    sha256_write(ctx, &padByte, 1);
190
191
    /* pad extra space with zeroes */
192
    padByte = 0;
193
    while(ctx->sha_bufCnt != 56) {
194
        sha256_write(ctx, &padByte, 1);
195
    }
196
197
    /* write bit length, big endian byte order */
198
    ctx->sha_out[56] = bitLength >> 56;
199
    ctx->sha_out[57] = bitLength >> 48;
200
    ctx->sha_out[58] = bitLength >> 40;
201
    ctx->sha_out[59] = bitLength >> 32;
202
    ctx->sha_out[60] = bitLength >> 24;
203
    ctx->sha_out[61] = bitLength >> 16;
204
    ctx->sha_out[62] = bitLength >> 8;
205
    ctx->sha_out[63] = bitLength;
206
    sha256_transform(ctx, &ctx->sha_out[0]);
207
    
208
    /* return results in ctx->sha_out[0...31] */
209
    datap = &ctx->sha_out[0];
210
    j = 0;
211
    do {
212
        i = ctx->sha_H[j];
213
        datap[0] = i >> 24;
214
        datap[1] = i >> 16;
215
        datap[2] = i >> 8;
216
        datap[3] = i;
217
        datap += 4;
218
    } while(++j < 8);
219
220
    /* clear sensitive information */
221
    memset(&ctx->sha_out[32], 0, sizeof(sha256_context) - 32);
222
}
223
224
void sha256_hash_buffer(unsigned char *ib, int ile, unsigned char *ob, int ole)
225
{
226
    sha256_context ctx;
227
228
    if(ole < 1) return;
229
    memset(ob, 0, ole);
230
    if(ole > 32) ole = 32;
231
    sha256_init(&ctx);
232
    sha256_write(&ctx, ib, ile);
233
    sha256_final(&ctx);
234
    memcpy(ob, &ctx.sha_out[0], ole);
235
    memset(&ctx, 0, sizeof(ctx));
236
}
237
238
#endif
239
240
#if defined(SHA512_NEEDED)
241
void sha512_init(sha512_context *ctx)
242
{
243
    memcpy(&ctx->sha_H[0], &sha512_hashInit[0], sizeof(ctx->sha_H));
244
    ctx->sha_blocks = 0;
245
    ctx->sha_blocksMSB = 0;
246
    ctx->sha_bufCnt = 0;
247
}
248
#endif
249
250
#if defined(SHA512_NEEDED) || defined(SHA384_NEEDED)
251
#undef S
252
#undef uSig0
253
#undef uSig1
254
#undef lSig0
255
#undef lSig1
256
#define S(x,y)      (((y) >> (x)) | ((y) << (64 - (x))))
257
#define uSig0(x)    ((S(28,(x))) ^ (S(34,(x))) ^ (S(39,(x))))
258
#define uSig1(x)    ((S(14,(x))) ^ (S(18,(x))) ^ (S(41,(x))))
259
#define lSig0(x)    ((S(1,(x))) ^ (S(8,(x))) ^ (R(7,(x))))
260
#define lSig1(x)    ((S(19,(x))) ^ (S(61,(x))) ^ (R(6,(x))))
261
262
static void sha512_transform(sha512_context *ctx, unsigned char *datap)
263
{
264
    register int    j;
265
    u_int64_t       a, b, c, d, e, f, g, h;
266
    u_int64_t       T1, T2, W[80], Wm2, Wm15;
267
268
    /* read the data, big endian byte order */
269
    j = 0;
270
    do {
271
        W[j] = (((u_int64_t)(datap[0]))<<56) | (((u_int64_t)(datap[1]))<<48) |
272
               (((u_int64_t)(datap[2]))<<40) | (((u_int64_t)(datap[3]))<<32) |
273
               (((u_int64_t)(datap[4]))<<24) | (((u_int64_t)(datap[5]))<<16) |
274
               (((u_int64_t)(datap[6]))<<8 ) | ((u_int64_t)(datap[7]));
275
        datap += 8;
276
    } while(++j < 16);
277
    
278
    /* initialize variables a...h */
279
    a = ctx->sha_H[0];
280
    b = ctx->sha_H[1];
281
    c = ctx->sha_H[2];
282
    d = ctx->sha_H[3];
283
    e = ctx->sha_H[4];
284
    f = ctx->sha_H[5];
285
    g = ctx->sha_H[6];
286
    h = ctx->sha_H[7];
287
288
    /* apply compression function */
289
    j = 0;
290
    do {
291
        if(j >= 16) {
292
            Wm2 = W[j - 2];
293
            Wm15 = W[j - 15];
294
            W[j] = lSig1(Wm2) + W[j - 7] + lSig0(Wm15) + W[j - 16];
295
        }
296
        T1 = h + uSig1(e) + Ch(e,f,g) + sha512_K[j] + W[j];
297
        T2 = uSig0(a) + Maj(a,b,c);
298
        h = g; g = f; f = e;
299
        e = d + T1;
300
        d = c; c = b; b = a;
301
        a = T1 + T2;
302
    } while(++j < 80);
303
304
    /* compute intermediate hash value */
305
    ctx->sha_H[0] += a;
306
    ctx->sha_H[1] += b;
307
    ctx->sha_H[2] += c;
308
    ctx->sha_H[3] += d;
309
    ctx->sha_H[4] += e;
310
    ctx->sha_H[5] += f;
311
    ctx->sha_H[6] += g;
312
    ctx->sha_H[7] += h;
313
314
    ctx->sha_blocks++;
315
    if(!ctx->sha_blocks) ctx->sha_blocksMSB++;
316
}
317
318
void sha512_write(sha512_context *ctx, unsigned char *datap, int length)
319
{
320
    while(length > 0) {
321
        if(!ctx->sha_bufCnt) {
322
            while(length >= sizeof(ctx->sha_out)) {
323
                sha512_transform(ctx, datap);
324
                datap += sizeof(ctx->sha_out);
325
                length -= sizeof(ctx->sha_out);
326
            }
327
            if(!length) return;
328
        }
329
        ctx->sha_out[ctx->sha_bufCnt] = *datap++;
330
        length--;
331
        if(++ctx->sha_bufCnt == sizeof(ctx->sha_out)) {
332
            sha512_transform(ctx, &ctx->sha_out[0]);
333
            ctx->sha_bufCnt = 0;
334
        }
335
    }
336
}
337
338
void sha512_final(sha512_context *ctx)
339
{
340
    register int    j;
341
    u_int64_t       bitLength, bitLengthMSB;
342
    u_int64_t       i;
343
    unsigned char   padByte, *datap;
344
345
    bitLength = (ctx->sha_blocks << 10) | (ctx->sha_bufCnt << 3);
346
    bitLengthMSB = (ctx->sha_blocksMSB << 10) | (ctx->sha_blocks >> 54);
347
    padByte = 0x80;
348
    sha512_write(ctx, &padByte, 1);
349
350
    /* pad extra space with zeroes */
351
    padByte = 0;
352
    while(ctx->sha_bufCnt != 112) {
353
        sha512_write(ctx, &padByte, 1);
354
    }
355
356
    /* write bit length, big endian byte order */
357
    ctx->sha_out[112] = bitLengthMSB >> 56;
358
    ctx->sha_out[113] = bitLengthMSB >> 48;
359
    ctx->sha_out[114] = bitLengthMSB >> 40;
360
    ctx->sha_out[115] = bitLengthMSB >> 32;
361
    ctx->sha_out[116] = bitLengthMSB >> 24;
362
    ctx->sha_out[117] = bitLengthMSB >> 16;
363
    ctx->sha_out[118] = bitLengthMSB >> 8;
364
    ctx->sha_out[119] = bitLengthMSB;
365
    ctx->sha_out[120] = bitLength >> 56;
366
    ctx->sha_out[121] = bitLength >> 48;
367
    ctx->sha_out[122] = bitLength >> 40;
368
    ctx->sha_out[123] = bitLength >> 32;
369
    ctx->sha_out[124] = bitLength >> 24;
370
    ctx->sha_out[125] = bitLength >> 16;
371
    ctx->sha_out[126] = bitLength >> 8;
372
    ctx->sha_out[127] = bitLength;
373
    sha512_transform(ctx, &ctx->sha_out[0]);
374
    
375
    /* return results in ctx->sha_out[0...63] */
376
    datap = &ctx->sha_out[0];
377
    j = 0;
378
    do {
379
        i = ctx->sha_H[j];
380
        datap[0] = i >> 56;
381
        datap[1] = i >> 48;
382
        datap[2] = i >> 40;
383
        datap[3] = i >> 32;
384
        datap[4] = i >> 24;
385
        datap[5] = i >> 16;
386
        datap[6] = i >> 8;
387
        datap[7] = i;
388
        datap += 8;
389
    } while(++j < 8);
390
391
    /* clear sensitive information */
392
    memset(&ctx->sha_out[64], 0, sizeof(sha512_context) - 64);
393
}
394
395
void sha512_hash_buffer(unsigned char *ib, int ile, unsigned char *ob, int ole)
396
{
397
    sha512_context ctx;
398
399
    if(ole < 1) return;
400
    memset(ob, 0, ole);
401
    if(ole > 64) ole = 64;
402
    sha512_init(&ctx);
403
    sha512_write(&ctx, ib, ile);
404
    sha512_final(&ctx);
405
    memcpy(ob, &ctx.sha_out[0], ole);
406
    memset(&ctx, 0, sizeof(ctx));
407
}
408
#endif
409
410
#if defined(SHA384_NEEDED)
411
void sha384_init(sha512_context *ctx)
412
{
413
    memcpy(&ctx->sha_H[0], &sha384_hashInit[0], sizeof(ctx->sha_H));
414
    ctx->sha_blocks = 0;
415
    ctx->sha_blocksMSB = 0;
416
    ctx->sha_bufCnt = 0;
417
}
418
419
void sha384_hash_buffer(unsigned char *ib, int ile, unsigned char *ob, int ole)
420
{
421
    sha512_context ctx;
422
423
    if(ole < 1) return;
424
    memset(ob, 0, ole);
425
    if(ole > 48) ole = 48;
426
    sha384_init(&ctx);
427
    sha512_write(&ctx, ib, ile);
428
    sha512_final(&ctx);
429
    memcpy(ob, &ctx.sha_out[0], ole);
430
    memset(&ctx, 0, sizeof(ctx));
431
}
432
#endif
(-)util-linux-2.21.2.orig/mount/sha512.h (+45 lines)
Line 0 Link Here
1
/*
2
 *  sha512.h
3
 *
4
 *  Written by Jari Ruusu, April 16 2001
5
 *
6
 *  Copyright 2001 by Jari Ruusu.
7
 *  Redistribution of this file is permitted under the GNU Public License.
8
 */
9
10
#include <sys/types.h>
11
12
typedef struct {
13
    unsigned char   sha_out[64];    /* results are here, bytes 0...31 */
14
    u_int32_t       sha_H[8];
15
    u_int64_t       sha_blocks;
16
    int             sha_bufCnt;
17
} sha256_context;
18
19
typedef struct {
20
    unsigned char   sha_out[128];   /* results are here, bytes 0...63 */
21
    u_int64_t       sha_H[8];
22
    u_int64_t       sha_blocks;
23
    u_int64_t       sha_blocksMSB;
24
    int             sha_bufCnt;
25
} sha512_context;
26
27
/* no sha384_context, use sha512_context */
28
29
/* 256 bit hash, provides 128 bits of security against collision attacks */
30
extern void sha256_init(sha256_context *);
31
extern void sha256_write(sha256_context *, unsigned char *, int);
32
extern void sha256_final(sha256_context *);
33
extern void sha256_hash_buffer(unsigned char *, int, unsigned char *, int);
34
35
/* 512 bit hash, provides 256 bits of security against collision attacks */
36
extern void sha512_init(sha512_context *);
37
extern void sha512_write(sha512_context *, unsigned char *, int);
38
extern void sha512_final(sha512_context *);
39
extern void sha512_hash_buffer(unsigned char *, int, unsigned char *, int);
40
41
/* 384 bit hash, provides 192 bits of security against collision attacks */
42
extern void sha384_init(sha512_context *);
43
/* no sha384_write(), use sha512_write() */
44
/* no sha384_final(), use sha512_final(), result in ctx->sha_out[0...47]  */
45
extern void sha384_hash_buffer(unsigned char *, int, unsigned char *, int);
(-)util-linux-2.21.2.orig/mount/umount.c (-14 / +13 lines)
Lines 16-22 Link Here
16
#include "sundries.h"
16
#include "sundries.h"
17
#include "getusername.h"
17
#include "getusername.h"
18
#include "pathnames.h"
18
#include "pathnames.h"
19
#include "loopdev.h"
19
#include "lomount.h"
20
#include "loop.h"
20
#include "fstab.h"
21
#include "fstab.h"
21
#include "env.h"
22
#include "env.h"
22
#include "nls.h"
23
#include "nls.h"
Lines 276-282 Link Here
276
	int extra_flags = 0;
277
	int extra_flags = 0;
277
	const char *loopdev, *target = node;
278
	const char *loopdev, *target = node;
278
	char *targetbuf = NULL;
279
	char *targetbuf = NULL;
279
	int myloop = 0;
280
280
281
	/* Special case for root.  As of 0.99pl10 we can (almost) unmount root;
281
	/* Special case for root.  As of 0.99pl10 we can (almost) unmount root;
282
	   the kernel will remount it readonly so that we can carry on running
282
	   the kernel will remount it readonly so that we can carry on running
Lines 301-313 Link Here
301
	/* Skip the actual umounting for --fake */
301
	/* Skip the actual umounting for --fake */
302
	if (fake)
302
	if (fake)
303
		goto writemtab;
303
		goto writemtab;
304
	/*
305
	 * Ignore the option "-d" for non-loop devices and loop devices with
306
	 * LO_FLAGS_AUTOCLEAR flag.
307
	 */
308
	if (delloop && is_loopdev(spec))
309
		myloop = 1;
310
311
	if (restricted) {
304
	if (restricted) {
312
		if (umount_nofollow_support())
305
		if (umount_nofollow_support())
313
			extra_flags |= UMOUNT_NOFOLLOW;
306
			extra_flags |= UMOUNT_NOFOLLOW;
Lines 409-420 Link Here
409
		}
402
		}
410
403
411
		/* Also free loop devices when -d flag is given */
404
		/* Also free loop devices when -d flag is given */
412
		if (myloop)
405
		if (delloop && is_loop_device(spec))
413
			loopdev = spec;
406
			loopdev = spec;
414
	}
407
	}
415
 gotloop:
408
 gotloop:
416
	if (loopdev && !loopdev_is_autoclear(loopdev))
409
	if (loopdev)
417
		loopdev_delete(loopdev);
410
		del_loop(loopdev);
418
411
419
 writemtab:
412
 writemtab:
420
	if (!nomtab &&
413
	if (!nomtab &&
Lines 565-572 Link Here
565
	}
558
	}
566
559
567
	/* check association */
560
	/* check association */
568
	if (loopdev_is_used((char *) mc->m.mnt_fsname, fs->m.mnt_fsname,
561
	if (loopfile_used_with((char *) mc->m.mnt_fsname,
569
				offset, LOOPDEV_FL_OFFSET) == 1) {
562
				fs->m.mnt_fsname, offset) == 1) {
570
		if (verbose > 1)
563
		if (verbose > 1)
571
			printf(_("device %s is associated with %s\n"),
564
			printf(_("device %s is associated with %s\n"),
572
			       mc->m.mnt_fsname, fs->m.mnt_fsname);
565
			       mc->m.mnt_fsname, fs->m.mnt_fsname);
Lines 604-611 Link Here
604
	const char *file, *options;
597
	const char *file, *options;
605
	int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group;
598
	int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group;
606
	int ok, status = 0;
599
	int ok, status = 0;
600
#if 0
607
	struct stat statbuf;
601
	struct stat statbuf;
608
	char *loopdev = NULL;
602
	char *loopdev = NULL;
603
#endif
609
604
610
	if (!*arg) {		/* "" would be expanded to `pwd` */
605
	if (!*arg) {		/* "" would be expanded to `pwd` */
611
		die(2, _("Cannot unmount \"\"\n"));
606
		die(2, _("Cannot unmount \"\"\n"));
Lines 614-620 Link Here
614
609
615
	file = canonicalize(arg); /* mtab paths are canonicalized */
610
	file = canonicalize(arg); /* mtab paths are canonicalized */
616
611
612
#if 0
617
try_loopdev:
613
try_loopdev:
614
#endif
618
	if (verbose > 1)
615
	if (verbose > 1)
619
		printf(_("Trying to unmount %s\n"), file);
616
		printf(_("Trying to unmount %s\n"), file);
620
617
Lines 649-654 Link Here
649
	/* not found in mtab - check if it is associated with some loop device
646
	/* not found in mtab - check if it is associated with some loop device
650
	 * (only if it is a regular file)
647
	 * (only if it is a regular file)
651
	 */
648
	 */
649
#if 0
652
	if (!mc && !loopdev && !stat(file, &statbuf) && S_ISREG(statbuf.st_mode)) {
650
	if (!mc && !loopdev && !stat(file, &statbuf) && S_ISREG(statbuf.st_mode)) {
653
		int count = loopdev_count_by_backing_file(file, &loopdev);
651
		int count = loopdev_count_by_backing_file(file, &loopdev);
654
652
Lines 663-668 Link Here
663
			fprintf(stderr, _("umount: warning: %s is associated "
661
			fprintf(stderr, _("umount: warning: %s is associated "
664
				"with more than one loop device\n"), arg);
662
				"with more than one loop device\n"), arg);
665
	}
663
	}
664
#endif
666
665
667
	if (mc) {
666
	if (mc) {
668
		/*
667
		/*
(-)util-linux-2.21.2.orig/sys-utils/losetup.8 (-145 / +172 lines)
Lines 1-173 Link Here
1
.TH LOSETUP 8 "July 2003" "util-linux" "System Administration"
1
.TH LOSETUP 8 "2008-10-15" "Linux" "MAINTENANCE COMMANDS"
2
.SH NAME
2
.SH NAME
3
losetup \- set up and control loop devices
3
losetup \- set up and control loop devices
4
.SH SYNOPSIS
4
.SH SYNOPSIS
5
.ad l
5
.ad l
6
Get info:
7
.sp
8
.in +5
9
.B losetup
6
.B losetup
10
.I loopdev
7
[options]
11
.sp
8
.I loop_device
9
file
10
.br
11
.B losetup -F
12
[options]
13
.I loop_device
14
[file]
15
.br
16
.B losetup
17
[
18
.B \-d
19
]
20
.I loop_device
21
.br
12
.B losetup -a
22
.B losetup -a
13
.sp
23
.br
14
.B losetup -j
24
.B losetup -f
15
.I file
25
.br
16
.RB [ \-o
26
.B losetup
17
.IR offset ]
27
.B \-R
18
.sp
28
.I loop_device
19
.in -5
20
Delete loop:
21
.sp
22
.in +5
23
.B "losetup \-d"
24
.IR loopdev ...
25
.sp
26
.in -5
27
Delete all used loop devices:
28
.sp
29
.in +5
30
.B "losetup \-D"
31
.sp
32
.in -5
33
Print name of first unused loop device:
34
.sp
35
.in +5
36
.B "losetup \-f"
37
.sp
38
.in -5
39
Setup loop device:
40
.sp
41
.in +5
42
.B losetup
43
.RB [{ \-e | \-E }
44
.IR encryption ]
45
.RB [ \-o
46
.IR offset ]
47
.RB [ \-\-sizelimit
48
.IR size ]
49
.in +8
50
.RB [ \-p
51
.IR pfd ]
52
.RB [ \-rP ]
53
.RB { \-f [ \-\-show ]| \fIloopdev\fP }
54
.I file
55
.sp
56
.in -13
57
Resize loop device:
58
.sp
59
.in +5
60
.B "losetup \-c"
61
.I loopdev
62
.in -5
63
.ad b
29
.ad b
64
.SH DESCRIPTION
30
.SH DESCRIPTION
65
.B losetup
31
.B losetup
66
is used to associate loop devices with regular files or block devices,
32
is used to associate loop devices with regular files or block devices,
67
to detach loop devices and to query the status of a loop device. If only the
33
to detach loop devices and to query the status of a loop device. If only the
68
\fIloopdev\fP argument is given, the status of the corresponding loop
34
\fIloop_device\fP argument is given, the status of the corresponding loop
69
device is shown.
35
device is shown.
70
71
.SH OPTIONS
36
.SH OPTIONS
72
The \fIsize\fR and \fIoffset\fR arguments may be followed by binary (2^N)
37
.IP \fB\-a\fP
73
suffixes KiB, MiB, GiB, TiB, PiB and EiB (the "iB" is optional, e.g. "K" has the
38
Show status of all loop devices.
74
same meaning as "KiB") or decimal (10^N) suffixes KB, MB, GB, PB and EB.
39
.IP "\fB\-C \fIitercountk\fP"
75
40
Runs hashed passphrase through \fIitercountk\fP thousand iterations of AES-256
76
.IP "\fB\-a, \-\-all\fP"
41
before using it for loop encryption. This consumes lots of CPU cycles at
77
show status of all loop devices. Note that not all information are accessible
42
loop setup/mount time but not thereafter. In combination with passphrase seed
78
for non-root users.
43
this slows down dictionary attacks. Iteration is not done in multi-key mode.
79
.IP "\fB\-c, \-\-set-capacity\fP \fIloopdev\fP
44
.IP "\fB\-d\fP"
80
force loop driver to reread size of the file associated with the specified loop device
45
Detach the file or device associated with the specified loop device.
81
.IP "\fB\-d, \-\-detach\fP \fIloopdev\fP..."
46
.IP "\fB\-e \fIencryption\fP"
82
detach the file or device associated with the specified loop device(s)
47
.RS
83
.IP "\fB\-D, \-\-detach-all\fP"
48
Enable data encryption. Following encryption types are recognized:
84
detach all associated loop devices
49
.IP \fBNONE\fP
85
.IP "\fB\-e, \-E, \-\-encryption \fIencryption_type\fP"
50
Use no encryption (default).
86
enable data encryption with specified name or number
51
.PD 0
87
.IP "\fB\-f, \-\-find\fP"
52
.IP \fBXOR\fP
88
find the first unused loop device. If a
53
Use a simple XOR encryption.
89
.I file
54
.IP "\fBAES128 AES\fP"
90
argument is present, use this device. Otherwise, print its name
55
Use 128 bit AES encryption. Passphrase is hashed with SHA-256 by default.
91
.IP "\fB\-h, \-\-help\fP"
56
.IP \fBAES192\fP
92
print help
57
Use 192 bit AES encryption. Passphrase is hashed with SHA-384 by default.
93
.IP "\fB\-j, \-\-associated \fIfile\fP"
58
.IP \fBAES256\fP
94
show status of all loop devices associated with given
59
Use 256 bit AES encryption. Passphrase is hashed with SHA-512 by default.
95
.I file
60
96
.IP "\fB\-o, \-\-offset \fIoffset\fP"
61
.IP "\fBtwofish128 twofish160 twofish192 twofish256\fP"
97
the data start is moved \fIoffset\fP bytes into the specified file or
62
.IP "\fBblowfish128 blowfish160 blowfish192 blowfish256\fP"
98
device
63
.IP "\fBserpent128 serpent192 serpent256 mars128 mars192\fP"
99
.IP "\fB\-\-sizelimit \fIsize\fP"
64
.IP "\fBmars256 rc6-128 rc6-192 rc6-256 tripleDES\fP"
100
the data end is set to no more than \fIsize\fP bytes after the data start
65
These encryption types are available if they are enabled in kernel
101
.IP "\fB\-p, \-\-pass-fd \fInum\fP"
66
configuration or corresponding modules have been loaded to kernel.
102
read the passphrase from file descriptor with number
67
.PD
103
.I num
68
.RE
104
instead of from the terminal
69
.IP "\fB\-f\fP"
105
.IP "\fB\-P, \-\-partscan\fP"
70
Find and show next unused loop device.
106
force kernel to scan partition table on newly created loop device
71
.IP "\fB\-F\fP"
107
.IP "\fB\-r, \-\-read-only\fP"
72
Reads and uses mount options from /etc/fstab that match specified loop
108
setup read-only loop device
73
device, including offset= sizelimit= encryption= pseed= phash= loinit=
109
.IP "\fB\-\-show\fP"
74
gpgkey= gpghome= cleartextkey= itercountk= and looped to device/file name.
110
print device name if the
75
loop= option in /etc/fstab must match specified loop device name. Command
111
.I -f
76
line options take precedence in case of conflict.
112
option and a
77
.IP "\fB\-G \fIgpghome\fP"
113
.I file
78
Set gpg home directory to \fIgpghome\fP, so that gpg uses public/private
114
argument are present.
79
keys on \fIgpghome\fP directory. This is only used when gpgkey file needs to
115
.IP "\fB\-v, \-\-verbose\fP"
80
be decrypted using public/private keys. If gpgkey file is encrypted with
116
verbose mode
81
symmetric cipher only, public/private keys are not required and this option
117
82
has no effect.
118
.SH ENCRYPTION
83
.IP "\fB\-H \fIphash\fP"
119
.B Cryptoloop is deprecated in favor of dm-crypt. For more details see
84
Uses \fIphash\fP function to hash passphrase. Available hash functions are
120
.B cryptsetup (8). It is possible that all bug reports regarding to -E/-e
85
sha256, sha384, sha512 and rmd160. unhashed1, unhashed2 and unhashed3
121
.B options will be ignored.
86
functions also exist for compatibility with some obsolete implementations.
122
87
123
88
Hash function random does not ask for passphrase but sets up random keys and
124
It is possible to specify transfer functions (for encryption/decryption
89
attempts to put loop to multi-key mode. When random/1777 hash type is used
125
or other purposes) using one of the
90
as mount option for mount program, mount program will create new file system
126
.B \-E
91
on the loop device and construct initial permissions of file system root
127
and
92
directory from octal digits that follow the slash character.
128
.B \-e
93
129
options.
94
WARNING! DO NOT USE RANDOM HASH TYPE ON PARTITION WITH EXISTING IMPORTANT
130
There are two mechanisms to specify the desired encryption: by number
95
DATA ON IT. RANDOM HASH TYPE WILL DESTROY YOUR DATA.
131
and by name. If an encryption is specified by number then one
96
.IP "\fB\-I \fIloinit\fP"
132
has to make sure that the Linux kernel knows about the encryption with that
97
Passes a numeric value of \fIloinit\fP as a parameter to cipher transfer
133
number, probably by patching the kernel. Standard numbers that are
98
function. Cipher transfer functions are free to interpret value as they
134
always present are 0 (no encryption) and 1 (XOR encryption).
99
want.
135
When the cryptoloop module is loaded (or compiled in), it uses number 18.
100
.IP "\fB\-K \fIgpgkey\fP"
136
This cryptoloop module will take the name of an arbitrary encryption type
101
Passphrase is piped to gpg so that gpg can decrypt file \fIgpgkey\fP which
137
and find the module that knows how to perform that encryption.
102
contains the real keys that are used to encrypt loop device. If decryption
138
103
requires public/private keys and gpghome is not specified, all users use
104
their own gpg public/private keys to decrypt \fIgpgkey\fP. Decrypted
105
\fIgpgkey\fP should contain 1 or 64 or 65 keys, each key at least 20
106
characters and separated by newline. If decrypted \fIgpgkey\fP contains 64
107
or 65 keys, then loop device is put to multi-key mode. In multi-key mode
108
first key is used for first sector, second key for second sector, and so on.
109
65th key, if present, is used as additional input to MD5 IV computation.
110
.IP "\fB\-o \fIoffset\fP"
111
The data start is moved \fIoffset\fP bytes into the specified file or
112
device. Normally offset is included in IV (initialization vector)
113
computations. If offset is prefixed with @ character, then offset is not
114
included in IV computations. @ prefix functionality may not be supported on
115
some older kernels and/or loop drivers.
116
.IP "\fB\-p \fIpasswdfd\fP"
117
Read the passphrase from file descriptor \fIpasswdfd\fP instead of the
118
terminal. If -K option is not being used (no gpg key file), then losetup
119
attempts to read 65 keys from \fIpasswdfd\fP, each key at least 20
120
characters and separated by newline. If losetup successfully reads 64 or 65
121
keys, then loop device is put to multi-key mode. If losetup encounters
122
end-of-file before 64 keys are read, then only first key is used in
123
single-key mode.
124
125
echo SecretPassphraseHere | losetup -p0 -K foo.gpg -e AES128 ...
126
127
In above example, losetup reads passphrase from file descriptor 0 (stdin).
128
.IP "\fB\-P \fIcleartextkey\fP"
129
Read the passphrase from file \fIcleartextkey\fP instead of the
130
terminal. If -K option is not being used (no gpg key file), then losetup
131
attempts to read 65 keys from \fIcleartextkey\fP, each key at least 20
132
characters and separated by newline. If losetup successfully reads 64 or 65
133
keys, then loop device is put to multi-key mode. If losetup encounters
134
end-of-file before 64 keys are read, then only first key is used in
135
single-key mode. If both -p and -P options are used, then -p option takes
136
precedence. These are equivalent:
137
138
losetup -p3 -K foo.gpg -e AES128 ...   3<someFileName
139
140
losetup -P someFileName -K foo.gpg -e AES128 ...
141
142
In first line of above example, in addition to normal open file descriptors
143
(0==stdin 1==stdout 2==stderr), shell opens the file and passes open file
144
descriptor to started losetup program. In second line of above example,
145
losetup opens the file itself.
146
.IP "\fB\-r\fP"
147
Read-only mode.
148
.IP "\fB\-R\fP"
149
Resize existing, already set up loop device, to new changed underlying
150
device size. This option is for changing mounted live file system size on
151
LVM volume. This functionality may not be supported on some older kernels
152
and/or loop drivers.
153
.IP "\fB\-s \fIsizelimit\fP"
154
Size of loop device is limited to \fIsizelimit\fP bytes. If unspecified or
155
set to zero, loop device size is set to maximum available (file size minus
156
offset). This option may not be supported on some older kernels and/or loop
157
drivers.
158
.IP "\fB\-S \fIpseed\fP"
159
Sets encryption passphrase seed \fIpseed\fP which is appended to user supplied
160
passphrase before hashing. Using different seeds for different partitions
161
makes dictionary attacks slower but does not prevent them if user supplied
162
passphrase is guessable. Seed is not used in multi-key mode.
163
.IP "\fB\-T\fP"
164
Asks passphrase twice.
165
.IP "\fB\-v\fP"
166
Verbose mode.
139
.SH RETURN VALUE
167
.SH RETURN VALUE
140
.B losetup
168
.B losetup
141
returns 0 on success, nonzero on failure. When
169
returns 0 on success, nonzero on failure. When
142
.B losetup
170
.B losetup
143
displays the status of a loop device, it returns 1 if the device
171
displays the status of a loop device, it returns 1 if the device
144
is not configured and 2 if an error occurred which prevented
172
is not configured and 2 if an error occurred which prevented
173
.B losetup
145
from determining the status of the device.
174
from determining the status of the device.
146
175
147
.SH FILES
176
.SH FILES
148
.TP
177
.nf
149
.I /dev/loop[0..N]
178
/dev/loop0,/dev/loop1,...   loop devices (major=7)
150
loop block devices
179
.fi
151
.TP
152
.I /dev/loop-cotrol
153
loop control device
154
155
.SH EXAMPLE
180
.SH EXAMPLE
156
The following commands can be used as an example of using the loop device.
181
The following commands can be used as an example of using the loop device.
157
.nf
182
.nf
158
.IP
183
159
# dd if=/dev/zero of=~/file.img bs=1MiB count=10
184
dd if=/dev/zero of=/file bs=1k count=500
160
# losetup --find --show ~/file.img
185
head -c 3705 /dev/random | uuencode -m - | head -n 66 \\
161
/dev/loop0
186
    | tail -n 65 | gpg --symmetric -a >/etc/fskey9.gpg
162
# mkfs -t ext2 /dev/loop0
187
losetup -e AES128 -K /etc/fskey9.gpg /dev/loop0 /file
163
# mount /dev/loop0 /mnt
188
mkfs -t ext2 /dev/loop0
189
mount -t ext2 /dev/loop0 /mnt
164
 ...
190
 ...
165
# umount /dev/loop0
191
umount /dev/loop0
166
# losetup --detach /dev/loop0
192
losetup -d /dev/loop0
167
.fi
193
.fi
194
.SH RESTRICTION
195
XOR encryption is terribly weak.
168
.SH AUTHORS
196
.SH AUTHORS
169
Karel Zak <kzak@redhat.com>, based on original version from
197
.nf
170
Theodore Ts'o <tytso@athena.mit.edu>
198
Original version: Theodore Ts'o <tytso@athena.mit.edu>
171
.SH AVAILABILITY
199
AES support: Jari Ruusu
172
The losetup command is part of the util-linux package and is available from
200
.fi
173
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
(-)util-linux-2.21.2.orig/sys-utils/Makefile.am (-9 / +12 lines)
Lines 27-45 Link Here
27
sbin_PROGRAMS += losetup
27
sbin_PROGRAMS += losetup
28
dist_man_MANS += losetup.8
28
dist_man_MANS += losetup.8
29
29
30
losetup_SOURCES = losetup.c \
30
losetup_SOURCES = $(top_srcdir)/mount/lomount.c \
31
		$(top_srcdir)/lib/linux_version.c \
31
		$(top_srcdir)/mount/loumount.c \
32
		$(top_srcdir)/lib/at.c \
32
		$(top_srcdir)/mount/loop.c \
33
		$(top_srcdir)/lib/sysfs.c \
33
		$(top_srcdir)/mount/sha512.c \
34
		$(top_srcdir)/lib/loopdev.c \
34
		$(top_srcdir)/mount/rmd160.c \
35
		$(top_srcdir)/lib/canonicalize.c \
35
		$(top_srcdir)/mount/aes.c \
36
		$(top_srcdir)/lib/xgetpass.c \
36
		$(top_srcdir)/lib/xxstrdup.c
37
		$(top_srcdir)/lib/strutils.c
37
losetup_CFLAGS = $(AM_CFLAGS) -DMAIN -I$(top_srcdir)/mount
38
38
39
if HAVE_STATIC_LOSETUP
39
if HAVE_STATIC_LOSETUP
40
bin_PROGRAMS += losetup.static
40
bin_PROGRAMS += losetup.static
41
losetup_static_SOURCES = $(losetup_SOURCES)
41
losetup_static_SOURCES = $(losetup_SOURCES)
42
losetup_static_LDFLAGS = -all-static
42
losetup_static_LDFLAGS = -all-static
43
losetup_static_CFLAGS = $(losetup_CFLAGS)
43
endif
44
endif
44
endif # BUILD_LOSETUP
45
endif # BUILD_LOSETUP
45
46
Lines 98-110 Link Here
98
dist_man_MANS += swapoff.8 swapon.8
99
dist_man_MANS += swapoff.8 swapon.8
99
100
100
swapon_SOURCES = swapon.c \
101
swapon_SOURCES = swapon.c \
102
		$(top_srcdir)/mount/loop.c \
103
		$(top_srcdir)/mount/sha512.c \
101
		$(top_srcdir)/lib/linux_version.c \
104
		$(top_srcdir)/lib/linux_version.c \
102
		$(top_srcdir)/lib/blkdev.c \
105
		$(top_srcdir)/lib/blkdev.c \
103
		$(top_srcdir)/lib/fsprobe.c \
106
		$(top_srcdir)/lib/fsprobe.c \
104
		$(top_srcdir)/lib/canonicalize.c \
107
		$(top_srcdir)/lib/canonicalize.c \
105
		$(top_srcdir)/lib/mangle.c
108
		$(top_srcdir)/lib/mangle.c
106
109
107
swapon_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
110
swapon_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(top_srcdir)/mount
108
swapon_LDADD = $(ul_libblkid_la)
111
swapon_LDADD = $(ul_libblkid_la)
109
endif
112
endif
110
113
(-)util-linux-2.21.2.orig/sys-utils/Makefile.in (-102 / +281 lines)
Lines 191-224 Link Here
191
am_ldattach_OBJECTS = ldattach.$(OBJEXT) strutils.$(OBJEXT)
191
am_ldattach_OBJECTS = ldattach.$(OBJEXT) strutils.$(OBJEXT)
192
ldattach_OBJECTS = $(am_ldattach_OBJECTS)
192
ldattach_OBJECTS = $(am_ldattach_OBJECTS)
193
ldattach_LDADD = $(LDADD)
193
ldattach_LDADD = $(LDADD)
194
am__losetup_SOURCES_DIST = losetup.c $(top_srcdir)/lib/linux_version.c \
194
am__losetup_SOURCES_DIST = $(top_srcdir)/mount/lomount.c \
195
	$(top_srcdir)/lib/at.c $(top_srcdir)/lib/sysfs.c \
195
	$(top_srcdir)/mount/loumount.c $(top_srcdir)/mount/loop.c \
196
	$(top_srcdir)/lib/loopdev.c $(top_srcdir)/lib/canonicalize.c \
196
	$(top_srcdir)/mount/sha512.c $(top_srcdir)/mount/rmd160.c \
197
	$(top_srcdir)/lib/xgetpass.c $(top_srcdir)/lib/strutils.c
197
	$(top_srcdir)/mount/aes.c $(top_srcdir)/lib/xxstrdup.c
198
@BUILD_LOSETUP_TRUE@am_losetup_OBJECTS = losetup.$(OBJEXT) \
198
@BUILD_LOSETUP_TRUE@am_losetup_OBJECTS = losetup-lomount.$(OBJEXT) \
199
@BUILD_LOSETUP_TRUE@	linux_version.$(OBJEXT) at.$(OBJEXT) \
199
@BUILD_LOSETUP_TRUE@	losetup-loumount.$(OBJEXT) \
200
@BUILD_LOSETUP_TRUE@	sysfs.$(OBJEXT) loopdev.$(OBJEXT) \
200
@BUILD_LOSETUP_TRUE@	losetup-loop.$(OBJEXT) \
201
@BUILD_LOSETUP_TRUE@	canonicalize.$(OBJEXT) xgetpass.$(OBJEXT) \
201
@BUILD_LOSETUP_TRUE@	losetup-sha512.$(OBJEXT) \
202
@BUILD_LOSETUP_TRUE@	strutils.$(OBJEXT)
202
@BUILD_LOSETUP_TRUE@	losetup-rmd160.$(OBJEXT) \
203
@BUILD_LOSETUP_TRUE@	losetup-aes.$(OBJEXT) \
204
@BUILD_LOSETUP_TRUE@	losetup-xxstrdup.$(OBJEXT)
203
losetup_OBJECTS = $(am_losetup_OBJECTS)
205
losetup_OBJECTS = $(am_losetup_OBJECTS)
204
losetup_LDADD = $(LDADD)
206
losetup_LDADD = $(LDADD)
205
am__losetup_static_SOURCES_DIST = losetup.c \
207
losetup_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
206
	$(top_srcdir)/lib/linux_version.c $(top_srcdir)/lib/at.c \
208
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(losetup_CFLAGS) \
207
	$(top_srcdir)/lib/sysfs.c $(top_srcdir)/lib/loopdev.c \
209
	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
208
	$(top_srcdir)/lib/canonicalize.c $(top_srcdir)/lib/xgetpass.c \
210
am__losetup_static_SOURCES_DIST = $(top_srcdir)/mount/lomount.c \
209
	$(top_srcdir)/lib/strutils.c
211
	$(top_srcdir)/mount/loumount.c $(top_srcdir)/mount/loop.c \
210
@BUILD_LOSETUP_TRUE@am__objects_1 = losetup.$(OBJEXT) \
212
	$(top_srcdir)/mount/sha512.c $(top_srcdir)/mount/rmd160.c \
211
@BUILD_LOSETUP_TRUE@	linux_version.$(OBJEXT) at.$(OBJEXT) \
213
	$(top_srcdir)/mount/aes.c $(top_srcdir)/lib/xxstrdup.c
212
@BUILD_LOSETUP_TRUE@	sysfs.$(OBJEXT) loopdev.$(OBJEXT) \
214
@BUILD_LOSETUP_TRUE@am__objects_1 = losetup_static-lomount.$(OBJEXT) \
213
@BUILD_LOSETUP_TRUE@	canonicalize.$(OBJEXT) xgetpass.$(OBJEXT) \
215
@BUILD_LOSETUP_TRUE@	losetup_static-loumount.$(OBJEXT) \
214
@BUILD_LOSETUP_TRUE@	strutils.$(OBJEXT)
216
@BUILD_LOSETUP_TRUE@	losetup_static-loop.$(OBJEXT) \
217
@BUILD_LOSETUP_TRUE@	losetup_static-sha512.$(OBJEXT) \
218
@BUILD_LOSETUP_TRUE@	losetup_static-rmd160.$(OBJEXT) \
219
@BUILD_LOSETUP_TRUE@	losetup_static-aes.$(OBJEXT) \
220
@BUILD_LOSETUP_TRUE@	losetup_static-xxstrdup.$(OBJEXT)
215
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@am_losetup_static_OBJECTS = $(am__objects_1)
221
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@am_losetup_static_OBJECTS = $(am__objects_1)
216
losetup_static_OBJECTS = $(am_losetup_static_OBJECTS)
222
losetup_static_OBJECTS = $(am_losetup_static_OBJECTS)
217
losetup_static_LDADD = $(LDADD)
223
losetup_static_LDADD = $(LDADD)
218
losetup_static_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
224
losetup_static_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
219
	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
225
	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
220
	$(AM_CFLAGS) $(CFLAGS) $(losetup_static_LDFLAGS) $(LDFLAGS) -o \
226
	$(losetup_static_CFLAGS) $(CFLAGS) $(losetup_static_LDFLAGS) \
221
	$@
227
	$(LDFLAGS) -o $@
222
am__lscpu_SOURCES_DIST = lscpu.c $(top_srcdir)/lib/cpuset.c \
228
am__lscpu_SOURCES_DIST = lscpu.c $(top_srcdir)/lib/cpuset.c \
223
	$(top_srcdir)/lib/strutils.c $(top_srcdir)/lib/mbsalign.c \
229
	$(top_srcdir)/lib/strutils.c $(top_srcdir)/lib/mbsalign.c \
224
	$(top_srcdir)/lib/tt.c $(top_srcdir)/lib/path.c
230
	$(top_srcdir)/lib/tt.c $(top_srcdir)/lib/path.c
Lines 286-295 Link Here
286
setsid_SOURCES = setsid.c
292
setsid_SOURCES = setsid.c
287
setsid_OBJECTS = setsid.$(OBJEXT)
293
setsid_OBJECTS = setsid.$(OBJEXT)
288
setsid_LDADD = $(LDADD)
294
setsid_LDADD = $(LDADD)
289
am__swapon_SOURCES_DIST = swapon.c $(top_srcdir)/lib/linux_version.c \
295
am__swapon_SOURCES_DIST = swapon.c $(top_srcdir)/mount/loop.c \
296
	$(top_srcdir)/mount/sha512.c $(top_srcdir)/lib/linux_version.c \
290
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
297
	$(top_srcdir)/lib/blkdev.c $(top_srcdir)/lib/fsprobe.c \
291
	$(top_srcdir)/lib/canonicalize.c $(top_srcdir)/lib/mangle.c
298
	$(top_srcdir)/lib/canonicalize.c $(top_srcdir)/lib/mangle.c
292
@BUILD_SWAPON_TRUE@am_swapon_OBJECTS = swapon-swapon.$(OBJEXT) \
299
@BUILD_SWAPON_TRUE@am_swapon_OBJECTS = swapon-swapon.$(OBJEXT) \
300
@BUILD_SWAPON_TRUE@	swapon-loop.$(OBJEXT) \
301
@BUILD_SWAPON_TRUE@	swapon-sha512.$(OBJEXT) \
293
@BUILD_SWAPON_TRUE@	swapon-linux_version.$(OBJEXT) \
302
@BUILD_SWAPON_TRUE@	swapon-linux_version.$(OBJEXT) \
294
@BUILD_SWAPON_TRUE@	swapon-blkdev.$(OBJEXT) \
303
@BUILD_SWAPON_TRUE@	swapon-blkdev.$(OBJEXT) \
295
@BUILD_SWAPON_TRUE@	swapon-fsprobe.$(OBJEXT) \
304
@BUILD_SWAPON_TRUE@	swapon-fsprobe.$(OBJEXT) \
Lines 426-432 Link Here
426
CYGPATH_W = @CYGPATH_W@
435
CYGPATH_W = @CYGPATH_W@
427
DEFS = @DEFS@
436
DEFS = @DEFS@
428
DEPDIR = @DEPDIR@
437
DEPDIR = @DEPDIR@
429
DLLTOOL = @DLLTOOL@
430
DSYMUTIL = @DSYMUTIL@
438
DSYMUTIL = @DSYMUTIL@
431
DUMPBIN = @DUMPBIN@
439
DUMPBIN = @DUMPBIN@
432
ECHO_C = @ECHO_C@
440
ECHO_C = @ECHO_C@
Lines 465-471 Link Here
465
LTLIBINTL = @LTLIBINTL@
473
LTLIBINTL = @LTLIBINTL@
466
LTLIBOBJS = @LTLIBOBJS@
474
LTLIBOBJS = @LTLIBOBJS@
467
MAKEINFO = @MAKEINFO@
475
MAKEINFO = @MAKEINFO@
468
MANIFEST_TOOL = @MANIFEST_TOOL@
469
MKDIR_P = @MKDIR_P@
476
MKDIR_P = @MKDIR_P@
470
MKINSTALLDIRS = @MKINSTALLDIRS@
477
MKINSTALLDIRS = @MKINSTALLDIRS@
471
MSGFMT = @MSGFMT@
478
MSGFMT = @MSGFMT@
Lines 507-513 Link Here
507
abs_srcdir = @abs_srcdir@
514
abs_srcdir = @abs_srcdir@
508
abs_top_builddir = @abs_top_builddir@
515
abs_top_builddir = @abs_top_builddir@
509
abs_top_srcdir = @abs_top_srcdir@
516
abs_top_srcdir = @abs_top_srcdir@
510
ac_ct_AR = @ac_ct_AR@
511
ac_ct_CC = @ac_ct_CC@
517
ac_ct_CC = @ac_ct_CC@
512
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
518
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
513
am__include = @am__include@
519
am__include = @am__include@
Lines 541-546 Link Here
541
libexecdir = @libexecdir@
547
libexecdir = @libexecdir@
542
localedir = @localedir@
548
localedir = @localedir@
543
localstatedir = @localstatedir@
549
localstatedir = @localstatedir@
550
lt_ECHO = @lt_ECHO@
544
mandir = @mandir@
551
mandir = @mandir@
545
mkdir_p = @mkdir_p@
552
mkdir_p = @mkdir_p@
546
oldincludedir = @oldincludedir@
553
oldincludedir = @oldincludedir@
Lines 600-616 Link Here
600
	$(am__append_20) $(am__append_22) $(am__append_24) \
607
	$(am__append_20) $(am__append_22) $(am__append_24) \
601
	$(am__append_26) $(am__append_28) $(am__append_30) \
608
	$(am__append_26) $(am__append_28) $(am__append_30) \
602
	$(am__append_32)
609
	$(am__append_32)
603
@BUILD_LOSETUP_TRUE@losetup_SOURCES = losetup.c \
610
@BUILD_LOSETUP_TRUE@losetup_SOURCES = $(top_srcdir)/mount/lomount.c \
604
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/linux_version.c \
611
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/mount/loumount.c \
605
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/at.c \
612
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/mount/loop.c \
606
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/sysfs.c \
613
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/mount/sha512.c \
607
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/loopdev.c \
614
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/mount/rmd160.c \
608
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/canonicalize.c \
615
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/mount/aes.c \
609
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/xgetpass.c \
616
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/xxstrdup.c
610
@BUILD_LOSETUP_TRUE@		$(top_srcdir)/lib/strutils.c
611
617
618
@BUILD_LOSETUP_TRUE@losetup_CFLAGS = $(AM_CFLAGS) -DMAIN -I$(top_srcdir)/mount
612
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@losetup_static_SOURCES = $(losetup_SOURCES)
619
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@losetup_static_SOURCES = $(losetup_SOURCES)
613
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@losetup_static_LDFLAGS = -all-static
620
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@losetup_static_LDFLAGS = -all-static
621
@BUILD_LOSETUP_TRUE@@HAVE_STATIC_LOSETUP_TRUE@losetup_static_CFLAGS = $(losetup_CFLAGS)
614
@BUILD_PRLIMIT_TRUE@prlimit_SOURCES = prlimit.c $(top_srcdir)/lib/strutils.c \
622
@BUILD_PRLIMIT_TRUE@prlimit_SOURCES = prlimit.c $(top_srcdir)/lib/strutils.c \
615
@BUILD_PRLIMIT_TRUE@			$(top_srcdir)/lib/mbsalign.c \
623
@BUILD_PRLIMIT_TRUE@			$(top_srcdir)/lib/mbsalign.c \
616
@BUILD_PRLIMIT_TRUE@			$(top_srcdir)/lib/tt.c
624
@BUILD_PRLIMIT_TRUE@			$(top_srcdir)/lib/tt.c
Lines 636-648 Link Here
636
@BUILD_NEW_MOUNT_TRUE@@HAVE_STATIC_UMOUNT_TRUE@umount_static_LDFLAGS = $(umount_LDFLAGS) -all-static
644
@BUILD_NEW_MOUNT_TRUE@@HAVE_STATIC_UMOUNT_TRUE@umount_static_LDFLAGS = $(umount_LDFLAGS) -all-static
637
@BUILD_NEW_MOUNT_TRUE@@HAVE_STATIC_UMOUNT_TRUE@umount_static_LDADD = $(umount_LDADD)
645
@BUILD_NEW_MOUNT_TRUE@@HAVE_STATIC_UMOUNT_TRUE@umount_static_LDADD = $(umount_LDADD)
638
@BUILD_SWAPON_TRUE@swapon_SOURCES = swapon.c \
646
@BUILD_SWAPON_TRUE@swapon_SOURCES = swapon.c \
647
@BUILD_SWAPON_TRUE@		$(top_srcdir)/mount/loop.c \
648
@BUILD_SWAPON_TRUE@		$(top_srcdir)/mount/sha512.c \
639
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/linux_version.c \
649
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/linux_version.c \
640
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/blkdev.c \
650
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/blkdev.c \
641
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/fsprobe.c \
651
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/fsprobe.c \
642
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/canonicalize.c \
652
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/canonicalize.c \
643
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/mangle.c
653
@BUILD_SWAPON_TRUE@		$(top_srcdir)/lib/mangle.c
644
654
645
@BUILD_SWAPON_TRUE@swapon_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
655
@BUILD_SWAPON_TRUE@swapon_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(top_srcdir)/mount
646
@BUILD_SWAPON_TRUE@swapon_LDADD = $(ul_libblkid_la)
656
@BUILD_SWAPON_TRUE@swapon_LDADD = $(ul_libblkid_la)
647
@BUILD_LSCPU_TRUE@lscpu_SOURCES = lscpu.c $(top_srcdir)/lib/cpuset.c \
657
@BUILD_LSCPU_TRUE@lscpu_SOURCES = lscpu.c $(top_srcdir)/lib/cpuset.c \
648
@BUILD_LSCPU_TRUE@			$(top_srcdir)/lib/strutils.c \
658
@BUILD_LSCPU_TRUE@			$(top_srcdir)/lib/strutils.c \
Lines 918-924 Link Here
918
	$(AM_V_CCLD)$(LINK) $(ldattach_OBJECTS) $(ldattach_LDADD) $(LIBS)
928
	$(AM_V_CCLD)$(LINK) $(ldattach_OBJECTS) $(ldattach_LDADD) $(LIBS)
919
losetup$(EXEEXT): $(losetup_OBJECTS) $(losetup_DEPENDENCIES) 
929
losetup$(EXEEXT): $(losetup_OBJECTS) $(losetup_DEPENDENCIES) 
920
	@rm -f losetup$(EXEEXT)
930
	@rm -f losetup$(EXEEXT)
921
	$(AM_V_CCLD)$(LINK) $(losetup_OBJECTS) $(losetup_LDADD) $(LIBS)
931
	$(AM_V_CCLD)$(losetup_LINK) $(losetup_OBJECTS) $(losetup_LDADD) $(LIBS)
922
losetup.static$(EXEEXT): $(losetup_static_OBJECTS) $(losetup_static_DEPENDENCIES) 
932
losetup.static$(EXEEXT): $(losetup_static_OBJECTS) $(losetup_static_DEPENDENCIES) 
923
	@rm -f losetup.static$(EXEEXT)
933
	@rm -f losetup.static$(EXEEXT)
924
	$(AM_V_CCLD)$(losetup_static_LINK) $(losetup_static_OBJECTS) $(losetup_static_LDADD) $(LIBS)
934
	$(AM_V_CCLD)$(losetup_static_LINK) $(losetup_static_OBJECTS) $(losetup_static_LDADD) $(LIBS)
Lines 981-988 Link Here
981
	-rm -f *.tab.c
991
	-rm -f *.tab.c
982
992
983
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch.Po@am__quote@
993
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch.Po@am__quote@
984
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/at.Po@am__quote@
985
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize.Po@am__quote@
986
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chcpu.Po@am__quote@
994
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chcpu.Po@am__quote@
987
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpuset.Po@am__quote@
995
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpuset.Po@am__quote@
988
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlaltdel.Po@am__quote@
996
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlaltdel.Po@am__quote@
Lines 996-1004 Link Here
996
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipcrm.Po@am__quote@
1004
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipcrm.Po@am__quote@
997
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipcs.Po@am__quote@
1005
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipcs.Po@am__quote@
998
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldattach.Po@am__quote@
1006
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldattach.Po@am__quote@
999
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linux_version.Po@am__quote@
1007
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-aes.Po@am__quote@
1000
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loopdev.Po@am__quote@
1008
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-lomount.Po@am__quote@
1001
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup.Po@am__quote@
1009
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-loop.Po@am__quote@
1010
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-loumount.Po@am__quote@
1011
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-rmd160.Po@am__quote@
1012
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-sha512.Po@am__quote@
1013
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-xxstrdup.Po@am__quote@
1014
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-aes.Po@am__quote@
1015
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-lomount.Po@am__quote@
1016
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-loop.Po@am__quote@
1017
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-loumount.Po@am__quote@
1018
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-rmd160.Po@am__quote@
1019
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-sha512.Po@am__quote@
1020
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-xxstrdup.Po@am__quote@
1002
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lscpu.Po@am__quote@
1021
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lscpu.Po@am__quote@
1003
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsalign.Po@am__quote@
1022
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsalign.Po@am__quote@
1004
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-env.Po@am__quote@
1023
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-env.Po@am__quote@
Lines 1023-1032 Link Here
1023
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-canonicalize.Po@am__quote@
1042
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-canonicalize.Po@am__quote@
1024
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-fsprobe.Po@am__quote@
1043
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-fsprobe.Po@am__quote@
1025
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-linux_version.Po@am__quote@
1044
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-linux_version.Po@am__quote@
1045
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-loop.Po@am__quote@
1026
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-mangle.Po@am__quote@
1046
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-mangle.Po@am__quote@
1047
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-sha512.Po@am__quote@
1027
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-swapon.Po@am__quote@
1048
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon-swapon.Po@am__quote@
1028
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switch_root.Po@am__quote@
1049
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switch_root.Po@am__quote@
1029
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysfs.Po@am__quote@
1030
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tt.Po@am__quote@
1050
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tt.Po@am__quote@
1031
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tunelp.Po@am__quote@
1051
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tunelp.Po@am__quote@
1032
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-env.Po@am__quote@
1052
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-env.Po@am__quote@
Lines 1034-1040 Link Here
1034
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-env.Po@am__quote@
1054
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-env.Po@am__quote@
1035
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-umount.Po@am__quote@
1055
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount_static-umount.Po@am__quote@
1036
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unshare.Po@am__quote@
1056
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unshare.Po@am__quote@
1037
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetpass.Po@am__quote@
1038
1057
1039
.c.o:
1058
.c.o:
1040
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
1059
@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
Lines 1108-1208 Link Here
1108
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1127
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1109
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1128
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strutils.obj `if test -f '$(top_srcdir)/lib/strutils.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strutils.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strutils.c'; fi`
1110
1129
1111
linux_version.o: $(top_srcdir)/lib/linux_version.c
1130
losetup-lomount.o: $(top_srcdir)/mount/lomount.c
1112
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT linux_version.o -MD -MP -MF $(DEPDIR)/linux_version.Tpo -c -o linux_version.o `test -f '$(top_srcdir)/lib/linux_version.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/linux_version.c
1131
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-lomount.o -MD -MP -MF $(DEPDIR)/losetup-lomount.Tpo -c -o losetup-lomount.o `test -f '$(top_srcdir)/mount/lomount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/lomount.c
1113
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/linux_version.Tpo $(DEPDIR)/linux_version.Po
1132
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-lomount.Tpo $(DEPDIR)/losetup-lomount.Po
1133
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1134
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/lomount.c' object='losetup-lomount.o' libtool=no @AMDEPBACKSLASH@
1135
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1136
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-lomount.o `test -f '$(top_srcdir)/mount/lomount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/lomount.c
1137
1138
losetup-lomount.obj: $(top_srcdir)/mount/lomount.c
1139
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-lomount.obj -MD -MP -MF $(DEPDIR)/losetup-lomount.Tpo -c -o losetup-lomount.obj `if test -f '$(top_srcdir)/mount/lomount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/lomount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/lomount.c'; fi`
1140
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-lomount.Tpo $(DEPDIR)/losetup-lomount.Po
1141
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1142
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/lomount.c' object='losetup-lomount.obj' libtool=no @AMDEPBACKSLASH@
1143
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1144
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-lomount.obj `if test -f '$(top_srcdir)/mount/lomount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/lomount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/lomount.c'; fi`
1145
1146
losetup-loumount.o: $(top_srcdir)/mount/loumount.c
1147
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-loumount.o -MD -MP -MF $(DEPDIR)/losetup-loumount.Tpo -c -o losetup-loumount.o `test -f '$(top_srcdir)/mount/loumount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loumount.c
1148
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-loumount.Tpo $(DEPDIR)/losetup-loumount.Po
1149
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1150
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loumount.c' object='losetup-loumount.o' libtool=no @AMDEPBACKSLASH@
1151
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1152
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-loumount.o `test -f '$(top_srcdir)/mount/loumount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loumount.c
1153
1154
losetup-loumount.obj: $(top_srcdir)/mount/loumount.c
1155
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-loumount.obj -MD -MP -MF $(DEPDIR)/losetup-loumount.Tpo -c -o losetup-loumount.obj `if test -f '$(top_srcdir)/mount/loumount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loumount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loumount.c'; fi`
1156
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-loumount.Tpo $(DEPDIR)/losetup-loumount.Po
1157
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1158
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loumount.c' object='losetup-loumount.obj' libtool=no @AMDEPBACKSLASH@
1159
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1160
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-loumount.obj `if test -f '$(top_srcdir)/mount/loumount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loumount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loumount.c'; fi`
1161
1162
losetup-loop.o: $(top_srcdir)/mount/loop.c
1163
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-loop.o -MD -MP -MF $(DEPDIR)/losetup-loop.Tpo -c -o losetup-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1164
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-loop.Tpo $(DEPDIR)/losetup-loop.Po
1165
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1166
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='losetup-loop.o' libtool=no @AMDEPBACKSLASH@
1167
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1168
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1169
1170
losetup-loop.obj: $(top_srcdir)/mount/loop.c
1171
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-loop.obj -MD -MP -MF $(DEPDIR)/losetup-loop.Tpo -c -o losetup-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1172
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-loop.Tpo $(DEPDIR)/losetup-loop.Po
1173
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1174
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='losetup-loop.obj' libtool=no @AMDEPBACKSLASH@
1175
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1176
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1177
1178
losetup-sha512.o: $(top_srcdir)/mount/sha512.c
1179
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-sha512.o -MD -MP -MF $(DEPDIR)/losetup-sha512.Tpo -c -o losetup-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1180
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-sha512.Tpo $(DEPDIR)/losetup-sha512.Po
1181
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1182
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='losetup-sha512.o' libtool=no @AMDEPBACKSLASH@
1183
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1184
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1185
1186
losetup-sha512.obj: $(top_srcdir)/mount/sha512.c
1187
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-sha512.obj -MD -MP -MF $(DEPDIR)/losetup-sha512.Tpo -c -o losetup-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1188
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-sha512.Tpo $(DEPDIR)/losetup-sha512.Po
1189
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1190
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='losetup-sha512.obj' libtool=no @AMDEPBACKSLASH@
1191
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1192
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1193
1194
losetup-rmd160.o: $(top_srcdir)/mount/rmd160.c
1195
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-rmd160.o -MD -MP -MF $(DEPDIR)/losetup-rmd160.Tpo -c -o losetup-rmd160.o `test -f '$(top_srcdir)/mount/rmd160.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/rmd160.c
1196
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-rmd160.Tpo $(DEPDIR)/losetup-rmd160.Po
1197
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1198
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/rmd160.c' object='losetup-rmd160.o' libtool=no @AMDEPBACKSLASH@
1199
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1200
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-rmd160.o `test -f '$(top_srcdir)/mount/rmd160.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/rmd160.c
1201
1202
losetup-rmd160.obj: $(top_srcdir)/mount/rmd160.c
1203
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-rmd160.obj -MD -MP -MF $(DEPDIR)/losetup-rmd160.Tpo -c -o losetup-rmd160.obj `if test -f '$(top_srcdir)/mount/rmd160.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/rmd160.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/rmd160.c'; fi`
1204
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-rmd160.Tpo $(DEPDIR)/losetup-rmd160.Po
1205
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1206
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/rmd160.c' object='losetup-rmd160.obj' libtool=no @AMDEPBACKSLASH@
1207
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1208
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-rmd160.obj `if test -f '$(top_srcdir)/mount/rmd160.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/rmd160.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/rmd160.c'; fi`
1209
1210
losetup-aes.o: $(top_srcdir)/mount/aes.c
1211
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-aes.o -MD -MP -MF $(DEPDIR)/losetup-aes.Tpo -c -o losetup-aes.o `test -f '$(top_srcdir)/mount/aes.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/aes.c
1212
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-aes.Tpo $(DEPDIR)/losetup-aes.Po
1213
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1214
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/aes.c' object='losetup-aes.o' libtool=no @AMDEPBACKSLASH@
1215
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1216
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-aes.o `test -f '$(top_srcdir)/mount/aes.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/aes.c
1217
1218
losetup-aes.obj: $(top_srcdir)/mount/aes.c
1219
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-aes.obj -MD -MP -MF $(DEPDIR)/losetup-aes.Tpo -c -o losetup-aes.obj `if test -f '$(top_srcdir)/mount/aes.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/aes.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/aes.c'; fi`
1220
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-aes.Tpo $(DEPDIR)/losetup-aes.Po
1221
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1222
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/aes.c' object='losetup-aes.obj' libtool=no @AMDEPBACKSLASH@
1223
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1224
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-aes.obj `if test -f '$(top_srcdir)/mount/aes.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/aes.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/aes.c'; fi`
1225
1226
losetup-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
1227
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-xxstrdup.o -MD -MP -MF $(DEPDIR)/losetup-xxstrdup.Tpo -c -o losetup-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1228
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-xxstrdup.Tpo $(DEPDIR)/losetup-xxstrdup.Po
1229
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1230
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='losetup-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
1231
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1232
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1233
1234
losetup-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
1235
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -MT losetup-xxstrdup.obj -MD -MP -MF $(DEPDIR)/losetup-xxstrdup.Tpo -c -o losetup-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1236
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup-xxstrdup.Tpo $(DEPDIR)/losetup-xxstrdup.Po
1237
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1238
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='losetup-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
1239
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1240
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_CFLAGS) $(CFLAGS) -c -o losetup-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1241
1242
losetup_static-lomount.o: $(top_srcdir)/mount/lomount.c
1243
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-lomount.o -MD -MP -MF $(DEPDIR)/losetup_static-lomount.Tpo -c -o losetup_static-lomount.o `test -f '$(top_srcdir)/mount/lomount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/lomount.c
1244
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-lomount.Tpo $(DEPDIR)/losetup_static-lomount.Po
1245
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1246
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/lomount.c' object='losetup_static-lomount.o' libtool=no @AMDEPBACKSLASH@
1247
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1248
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-lomount.o `test -f '$(top_srcdir)/mount/lomount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/lomount.c
1249
1250
losetup_static-lomount.obj: $(top_srcdir)/mount/lomount.c
1251
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-lomount.obj -MD -MP -MF $(DEPDIR)/losetup_static-lomount.Tpo -c -o losetup_static-lomount.obj `if test -f '$(top_srcdir)/mount/lomount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/lomount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/lomount.c'; fi`
1252
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-lomount.Tpo $(DEPDIR)/losetup_static-lomount.Po
1114
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1253
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1115
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/linux_version.c' object='linux_version.o' libtool=no @AMDEPBACKSLASH@
1254
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/lomount.c' object='losetup_static-lomount.obj' libtool=no @AMDEPBACKSLASH@
1116
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1255
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1117
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o linux_version.o `test -f '$(top_srcdir)/lib/linux_version.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/linux_version.c
1256
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-lomount.obj `if test -f '$(top_srcdir)/mount/lomount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/lomount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/lomount.c'; fi`
1118
1257
1119
linux_version.obj: $(top_srcdir)/lib/linux_version.c
1258
losetup_static-loumount.o: $(top_srcdir)/mount/loumount.c
1120
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT linux_version.obj -MD -MP -MF $(DEPDIR)/linux_version.Tpo -c -o linux_version.obj `if test -f '$(top_srcdir)/lib/linux_version.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/linux_version.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/linux_version.c'; fi`
1259
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-loumount.o -MD -MP -MF $(DEPDIR)/losetup_static-loumount.Tpo -c -o losetup_static-loumount.o `test -f '$(top_srcdir)/mount/loumount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loumount.c
1121
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/linux_version.Tpo $(DEPDIR)/linux_version.Po
1260
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-loumount.Tpo $(DEPDIR)/losetup_static-loumount.Po
1122
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1261
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1123
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/linux_version.c' object='linux_version.obj' libtool=no @AMDEPBACKSLASH@
1262
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loumount.c' object='losetup_static-loumount.o' libtool=no @AMDEPBACKSLASH@
1124
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1263
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1125
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o linux_version.obj `if test -f '$(top_srcdir)/lib/linux_version.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/linux_version.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/linux_version.c'; fi`
1264
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-loumount.o `test -f '$(top_srcdir)/mount/loumount.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loumount.c
1126
1265
1127
at.o: $(top_srcdir)/lib/at.c
1266
losetup_static-loumount.obj: $(top_srcdir)/mount/loumount.c
1128
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT at.o -MD -MP -MF $(DEPDIR)/at.Tpo -c -o at.o `test -f '$(top_srcdir)/lib/at.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/at.c
1267
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-loumount.obj -MD -MP -MF $(DEPDIR)/losetup_static-loumount.Tpo -c -o losetup_static-loumount.obj `if test -f '$(top_srcdir)/mount/loumount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loumount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loumount.c'; fi`
1129
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/at.Tpo $(DEPDIR)/at.Po
1268
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-loumount.Tpo $(DEPDIR)/losetup_static-loumount.Po
1130
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1269
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1131
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/at.c' object='at.o' libtool=no @AMDEPBACKSLASH@
1270
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loumount.c' object='losetup_static-loumount.obj' libtool=no @AMDEPBACKSLASH@
1132
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1271
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1133
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o at.o `test -f '$(top_srcdir)/lib/at.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/at.c
1272
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-loumount.obj `if test -f '$(top_srcdir)/mount/loumount.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loumount.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loumount.c'; fi`
1134
1273
1135
at.obj: $(top_srcdir)/lib/at.c
1274
losetup_static-loop.o: $(top_srcdir)/mount/loop.c
1136
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT at.obj -MD -MP -MF $(DEPDIR)/at.Tpo -c -o at.obj `if test -f '$(top_srcdir)/lib/at.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/at.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/at.c'; fi`
1275
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-loop.o -MD -MP -MF $(DEPDIR)/losetup_static-loop.Tpo -c -o losetup_static-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1137
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/at.Tpo $(DEPDIR)/at.Po
1276
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-loop.Tpo $(DEPDIR)/losetup_static-loop.Po
1138
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1277
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1139
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/at.c' object='at.obj' libtool=no @AMDEPBACKSLASH@
1278
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='losetup_static-loop.o' libtool=no @AMDEPBACKSLASH@
1140
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1279
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1141
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o at.obj `if test -f '$(top_srcdir)/lib/at.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/at.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/at.c'; fi`
1280
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1142
1281
1143
sysfs.o: $(top_srcdir)/lib/sysfs.c
1282
losetup_static-loop.obj: $(top_srcdir)/mount/loop.c
1144
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sysfs.o -MD -MP -MF $(DEPDIR)/sysfs.Tpo -c -o sysfs.o `test -f '$(top_srcdir)/lib/sysfs.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/sysfs.c
1283
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-loop.obj -MD -MP -MF $(DEPDIR)/losetup_static-loop.Tpo -c -o losetup_static-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1145
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sysfs.Tpo $(DEPDIR)/sysfs.Po
1284
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-loop.Tpo $(DEPDIR)/losetup_static-loop.Po
1146
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1285
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1147
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/sysfs.c' object='sysfs.o' libtool=no @AMDEPBACKSLASH@
1286
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='losetup_static-loop.obj' libtool=no @AMDEPBACKSLASH@
1148
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1287
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1149
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sysfs.o `test -f '$(top_srcdir)/lib/sysfs.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/sysfs.c
1288
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1150
1289
1151
sysfs.obj: $(top_srcdir)/lib/sysfs.c
1290
losetup_static-sha512.o: $(top_srcdir)/mount/sha512.c
1152
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sysfs.obj -MD -MP -MF $(DEPDIR)/sysfs.Tpo -c -o sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1291
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-sha512.o -MD -MP -MF $(DEPDIR)/losetup_static-sha512.Tpo -c -o losetup_static-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1153
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sysfs.Tpo $(DEPDIR)/sysfs.Po
1292
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-sha512.Tpo $(DEPDIR)/losetup_static-sha512.Po
1154
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1293
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1155
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/sysfs.c' object='sysfs.obj' libtool=no @AMDEPBACKSLASH@
1294
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='losetup_static-sha512.o' libtool=no @AMDEPBACKSLASH@
1156
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1295
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1157
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sysfs.obj `if test -f '$(top_srcdir)/lib/sysfs.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/sysfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/sysfs.c'; fi`
1296
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1158
1297
1159
loopdev.o: $(top_srcdir)/lib/loopdev.c
1298
losetup_static-sha512.obj: $(top_srcdir)/mount/sha512.c
1160
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loopdev.o -MD -MP -MF $(DEPDIR)/loopdev.Tpo -c -o loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1299
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-sha512.obj -MD -MP -MF $(DEPDIR)/losetup_static-sha512.Tpo -c -o losetup_static-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1161
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/loopdev.Tpo $(DEPDIR)/loopdev.Po
1300
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-sha512.Tpo $(DEPDIR)/losetup_static-sha512.Po
1162
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1301
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1163
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='loopdev.o' libtool=no @AMDEPBACKSLASH@
1302
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='losetup_static-sha512.obj' libtool=no @AMDEPBACKSLASH@
1164
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1303
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1165
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loopdev.o `test -f '$(top_srcdir)/lib/loopdev.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/loopdev.c
1304
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1166
1305
1167
loopdev.obj: $(top_srcdir)/lib/loopdev.c
1306
losetup_static-rmd160.o: $(top_srcdir)/mount/rmd160.c
1168
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loopdev.obj -MD -MP -MF $(DEPDIR)/loopdev.Tpo -c -o loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1307
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-rmd160.o -MD -MP -MF $(DEPDIR)/losetup_static-rmd160.Tpo -c -o losetup_static-rmd160.o `test -f '$(top_srcdir)/mount/rmd160.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/rmd160.c
1169
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/loopdev.Tpo $(DEPDIR)/loopdev.Po
1308
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-rmd160.Tpo $(DEPDIR)/losetup_static-rmd160.Po
1170
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1309
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1171
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/loopdev.c' object='loopdev.obj' libtool=no @AMDEPBACKSLASH@
1310
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/rmd160.c' object='losetup_static-rmd160.o' libtool=no @AMDEPBACKSLASH@
1172
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1311
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1173
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loopdev.obj `if test -f '$(top_srcdir)/lib/loopdev.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/loopdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/loopdev.c'; fi`
1312
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-rmd160.o `test -f '$(top_srcdir)/mount/rmd160.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/rmd160.c
1174
1313
1175
canonicalize.o: $(top_srcdir)/lib/canonicalize.c
1314
losetup_static-rmd160.obj: $(top_srcdir)/mount/rmd160.c
1176
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT canonicalize.o -MD -MP -MF $(DEPDIR)/canonicalize.Tpo -c -o canonicalize.o `test -f '$(top_srcdir)/lib/canonicalize.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/canonicalize.c
1315
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-rmd160.obj -MD -MP -MF $(DEPDIR)/losetup_static-rmd160.Tpo -c -o losetup_static-rmd160.obj `if test -f '$(top_srcdir)/mount/rmd160.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/rmd160.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/rmd160.c'; fi`
1177
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/canonicalize.Tpo $(DEPDIR)/canonicalize.Po
1316
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-rmd160.Tpo $(DEPDIR)/losetup_static-rmd160.Po
1178
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1317
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1179
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/canonicalize.c' object='canonicalize.o' libtool=no @AMDEPBACKSLASH@
1318
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/rmd160.c' object='losetup_static-rmd160.obj' libtool=no @AMDEPBACKSLASH@
1180
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1319
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1181
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o canonicalize.o `test -f '$(top_srcdir)/lib/canonicalize.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/canonicalize.c
1320
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-rmd160.obj `if test -f '$(top_srcdir)/mount/rmd160.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/rmd160.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/rmd160.c'; fi`
1182
1321
1183
canonicalize.obj: $(top_srcdir)/lib/canonicalize.c
1322
losetup_static-aes.o: $(top_srcdir)/mount/aes.c
1184
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT canonicalize.obj -MD -MP -MF $(DEPDIR)/canonicalize.Tpo -c -o canonicalize.obj `if test -f '$(top_srcdir)/lib/canonicalize.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/canonicalize.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/canonicalize.c'; fi`
1323
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-aes.o -MD -MP -MF $(DEPDIR)/losetup_static-aes.Tpo -c -o losetup_static-aes.o `test -f '$(top_srcdir)/mount/aes.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/aes.c
1185
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/canonicalize.Tpo $(DEPDIR)/canonicalize.Po
1324
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-aes.Tpo $(DEPDIR)/losetup_static-aes.Po
1186
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1325
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1187
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/canonicalize.c' object='canonicalize.obj' libtool=no @AMDEPBACKSLASH@
1326
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/aes.c' object='losetup_static-aes.o' libtool=no @AMDEPBACKSLASH@
1188
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1327
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1189
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o canonicalize.obj `if test -f '$(top_srcdir)/lib/canonicalize.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/canonicalize.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/canonicalize.c'; fi`
1328
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-aes.o `test -f '$(top_srcdir)/mount/aes.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/aes.c
1190
1329
1191
xgetpass.o: $(top_srcdir)/lib/xgetpass.c
1330
losetup_static-aes.obj: $(top_srcdir)/mount/aes.c
1192
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetpass.o -MD -MP -MF $(DEPDIR)/xgetpass.Tpo -c -o xgetpass.o `test -f '$(top_srcdir)/lib/xgetpass.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xgetpass.c
1331
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-aes.obj -MD -MP -MF $(DEPDIR)/losetup_static-aes.Tpo -c -o losetup_static-aes.obj `if test -f '$(top_srcdir)/mount/aes.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/aes.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/aes.c'; fi`
1193
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/xgetpass.Tpo $(DEPDIR)/xgetpass.Po
1332
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-aes.Tpo $(DEPDIR)/losetup_static-aes.Po
1194
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1333
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1195
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xgetpass.c' object='xgetpass.o' libtool=no @AMDEPBACKSLASH@
1334
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/aes.c' object='losetup_static-aes.obj' libtool=no @AMDEPBACKSLASH@
1196
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1335
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1197
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetpass.o `test -f '$(top_srcdir)/lib/xgetpass.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xgetpass.c
1336
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-aes.obj `if test -f '$(top_srcdir)/mount/aes.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/aes.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/aes.c'; fi`
1198
1337
1199
xgetpass.obj: $(top_srcdir)/lib/xgetpass.c
1338
losetup_static-xxstrdup.o: $(top_srcdir)/lib/xxstrdup.c
1200
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetpass.obj -MD -MP -MF $(DEPDIR)/xgetpass.Tpo -c -o xgetpass.obj `if test -f '$(top_srcdir)/lib/xgetpass.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xgetpass.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xgetpass.c'; fi`
1339
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-xxstrdup.o -MD -MP -MF $(DEPDIR)/losetup_static-xxstrdup.Tpo -c -o losetup_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1201
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/xgetpass.Tpo $(DEPDIR)/xgetpass.Po
1340
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-xxstrdup.Tpo $(DEPDIR)/losetup_static-xxstrdup.Po
1202
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1341
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1203
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xgetpass.c' object='xgetpass.obj' libtool=no @AMDEPBACKSLASH@
1342
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='losetup_static-xxstrdup.o' libtool=no @AMDEPBACKSLASH@
1204
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1343
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1205
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetpass.obj `if test -f '$(top_srcdir)/lib/xgetpass.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xgetpass.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xgetpass.c'; fi`
1344
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-xxstrdup.o `test -f '$(top_srcdir)/lib/xxstrdup.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/xxstrdup.c
1345
1346
losetup_static-xxstrdup.obj: $(top_srcdir)/lib/xxstrdup.c
1347
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -MT losetup_static-xxstrdup.obj -MD -MP -MF $(DEPDIR)/losetup_static-xxstrdup.Tpo -c -o losetup_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1348
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/losetup_static-xxstrdup.Tpo $(DEPDIR)/losetup_static-xxstrdup.Po
1349
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1350
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/xxstrdup.c' object='losetup_static-xxstrdup.obj' libtool=no @AMDEPBACKSLASH@
1351
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1352
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(losetup_static_CFLAGS) $(CFLAGS) -c -o losetup_static-xxstrdup.obj `if test -f '$(top_srcdir)/lib/xxstrdup.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/xxstrdup.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/xxstrdup.c'; fi`
1206
1353
1207
mbsalign.o: $(top_srcdir)/lib/mbsalign.c
1354
mbsalign.o: $(top_srcdir)/lib/mbsalign.c
1208
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbsalign.o -MD -MP -MF $(DEPDIR)/mbsalign.Tpo -c -o mbsalign.o `test -f '$(top_srcdir)/lib/mbsalign.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/mbsalign.c
1355
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbsalign.o -MD -MP -MF $(DEPDIR)/mbsalign.Tpo -c -o mbsalign.o `test -f '$(top_srcdir)/lib/mbsalign.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/mbsalign.c
Lines 1396-1401 Link Here
1396
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1543
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1397
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi`
1544
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi`
1398
1545
1546
swapon-loop.o: $(top_srcdir)/mount/loop.c
1547
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-loop.o -MD -MP -MF $(DEPDIR)/swapon-loop.Tpo -c -o swapon-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1548
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-loop.Tpo $(DEPDIR)/swapon-loop.Po
1549
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1550
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='swapon-loop.o' libtool=no @AMDEPBACKSLASH@
1551
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1552
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-loop.o `test -f '$(top_srcdir)/mount/loop.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/loop.c
1553
1554
swapon-loop.obj: $(top_srcdir)/mount/loop.c
1555
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-loop.obj -MD -MP -MF $(DEPDIR)/swapon-loop.Tpo -c -o swapon-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1556
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-loop.Tpo $(DEPDIR)/swapon-loop.Po
1557
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1558
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/loop.c' object='swapon-loop.obj' libtool=no @AMDEPBACKSLASH@
1559
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1560
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-loop.obj `if test -f '$(top_srcdir)/mount/loop.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/loop.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/loop.c'; fi`
1561
1562
swapon-sha512.o: $(top_srcdir)/mount/sha512.c
1563
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-sha512.o -MD -MP -MF $(DEPDIR)/swapon-sha512.Tpo -c -o swapon-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1564
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-sha512.Tpo $(DEPDIR)/swapon-sha512.Po
1565
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1566
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='swapon-sha512.o' libtool=no @AMDEPBACKSLASH@
1567
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1568
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-sha512.o `test -f '$(top_srcdir)/mount/sha512.c' || echo '$(srcdir)/'`$(top_srcdir)/mount/sha512.c
1569
1570
swapon-sha512.obj: $(top_srcdir)/mount/sha512.c
1571
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-sha512.obj -MD -MP -MF $(DEPDIR)/swapon-sha512.Tpo -c -o swapon-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1572
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-sha512.Tpo $(DEPDIR)/swapon-sha512.Po
1573
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
1574
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/mount/sha512.c' object='swapon-sha512.obj' libtool=no @AMDEPBACKSLASH@
1575
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1576
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -c -o swapon-sha512.obj `if test -f '$(top_srcdir)/mount/sha512.c'; then $(CYGPATH_W) '$(top_srcdir)/mount/sha512.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/mount/sha512.c'; fi`
1577
1399
swapon-linux_version.o: $(top_srcdir)/lib/linux_version.c
1578
swapon-linux_version.o: $(top_srcdir)/lib/linux_version.c
1400
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-linux_version.o -MD -MP -MF $(DEPDIR)/swapon-linux_version.Tpo -c -o swapon-linux_version.o `test -f '$(top_srcdir)/lib/linux_version.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/linux_version.c
1579
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(swapon_CFLAGS) $(CFLAGS) -MT swapon-linux_version.o -MD -MP -MF $(DEPDIR)/swapon-linux_version.Tpo -c -o swapon-linux_version.o `test -f '$(top_srcdir)/lib/linux_version.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/linux_version.c
1401
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-linux_version.Tpo $(DEPDIR)/swapon-linux_version.Po
1580
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/swapon-linux_version.Tpo $(DEPDIR)/swapon-linux_version.Po
(-)util-linux-2.21.2.orig/sys-utils/swapon.8 (+16 lines)
Lines 104-109 Link Here
104
.I /proc/swaps
104
.I /proc/swaps
105
or
105
or
106
.IR /etc/fstab ).
106
.IR /etc/fstab ).
107
.PP
108
If
109
.I loop=/dev/loop?
110
and
111
.I encryption=AES128
112
options are present in
113
.I /etc/fstab
114
then
115
.BR "swapon -a"
116
will set up loop devices using random keys, run
117
.BR "mkswap"
118
on them, and enable encrypted swap on specified loop devices. Encrypted loop
119
devices are set up with page size offset so that unencrypted swap signatures
120
on first page of swap devices are not touched.
121
.BR "swapoff -a"
122
will tear down such loop devices.
107
123
108
.TP
124
.TP
109
.B "\-a, \-\-all"
125
.B "\-a, \-\-all"
(-)util-linux-2.21.2.orig/sys-utils/swapon.c (-8 / +328 lines)
Lines 1-5 Link Here
1
/*
1
/*
2
 * A swapon(8)/swapoff(8) for Linux 0.99.
2
 * A swapon(8)/swapoff(8) for Linux 0.99.
3
 * swapon.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
4
 *
5
 * 1997-02-xx <Vincent.Renardias@waw.com>
6
 * - added '-s' (summary option)
7
 * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
8
 * - added Native Language Support
9
 * 1999-03-21 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
10
 * - fixed strerr(errno) in gettext calls
11
 * 2001-03-22 Erik Troan <ewt@redhat.com>
12
 * - added -e option for -a
13
 * - -a shouldn't try to add swaps that are already enabled
14
 * 2002-04-14 Jari Ruusu
15
 * - added encrypted swap support
3
 */
16
 */
4
#include <stdlib.h>
17
#include <stdlib.h>
5
#include <stdio.h>
18
#include <stdio.h>
Lines 8-13 Link Here
8
#include <mntent.h>
21
#include <mntent.h>
9
#include <errno.h>
22
#include <errno.h>
10
#include <sys/stat.h>
23
#include <sys/stat.h>
24
#include <sys/ioctl.h>
25
#include <sys/utsname.h>
26
#include <sys/time.h>
11
#include <unistd.h>
27
#include <unistd.h>
12
#include <sys/types.h>
28
#include <sys/types.h>
13
#include <sys/wait.h>
29
#include <sys/wait.h>
Lines 25-30 Link Here
25
#include "canonicalize.h"
41
#include "canonicalize.h"
26
#include "xalloc.h"
42
#include "xalloc.h"
27
#include "c.h"
43
#include "c.h"
44
#include "loop.h"
45
#include "sha512.h"
28
46
29
#define PATH_MKSWAP	"/sbin/mkswap"
47
#define PATH_MKSWAP	"/sbin/mkswap"
30
48
Lines 620-625 Link Here
620
}
638
}
621
639
622
static int
640
static int
641
prepare_encrypted_swap(const char *partition, char *loop, char *encryption)
642
{
643
	int x, y, fd, ffd;
644
	int page_size;
645
	sha512_context s;
646
	unsigned char b[4096], multiKeyBits[65][32];
647
	char *a[10], *apiName;
648
	struct loop_info64 loopinfo;
649
	FILE *f;
650
651
	/*
652
	 * Some sanity checks
653
	 */
654
	if(strlen(partition) < 1) {
655
		fprintf(stderr, _("swapon: invalid swap device name\n"));
656
		return 0;
657
	}
658
	if(strlen(loop) < 1) {
659
		fprintf(stderr, _("swapon: invalid loop device name\n"));
660
		return 0;
661
	}
662
	if(strlen(encryption) < 1) {
663
		fprintf(stderr, _("swapon: invalid encryption type\n"));
664
		return 0;
665
	}
666
667
	/*
668
	 * Abort if loop device does not exist or is already in use
669
	 */
670
	sync();
671
	if((fd = open(loop, O_RDWR)) == -1) {
672
		fprintf(stderr, _("swapon: unable to open loop device %s\n"), loop);
673
		return 0;
674
	}
675
	if(is_unused_loop_device(fd) == 0) {
676
		fprintf(stderr, _("swapon: loop device %s already in use\n"), loop);
677
		goto errout0;
678
	}
679
680
	/*
681
	 * Compute SHA-512 over first 40 KB of old swap data. This data
682
	 * is mostly unknown data encrypted using unknown key. SHA-512 hash
683
	 * output is then used as entropy for new swap encryption key.
684
	 */
685
	if(!(f = fopen(partition, "r+"))) {
686
		fprintf(stderr, _("swapon: unable to open swap device %s\n"), partition);
687
		goto errout0;
688
	}
689
	page_size = getpagesize();
690
	fseek(f, (long)page_size, SEEK_SET);
691
	sha512_init(&s);
692
	for(x = 0; x < 10; x++) {
693
		if(fread(&b[0], sizeof(b), 1, f) != 1) break;
694
		sha512_write(&s, &b[0], sizeof(b));
695
	}
696
	sha512_final(&s);
697
698
	/*
699
	 * Overwrite 40 KB of old swap data 20 times so that recovering
700
	 * SHA-512 output beyond this point is difficult and expensive.
701
	 */
702
	for(y = 0; y < 20; y++) {
703
		int z;
704
		struct {
705
			struct timeval tv;
706
			unsigned char h[64];
707
			int x,y,z;
708
		} j;
709
		if(fseek(f, (long)page_size, SEEK_SET)) break;
710
		memcpy(&j.h[0], &s.sha_out[0], 64);
711
		gettimeofday(&j.tv, NULL);
712
		j.y = y;
713
		for(x = 0; x < 10; x++) {
714
			j.x = x;
715
			for(z = 0; z < sizeof(b); z += 64) {
716
				j.z = z;
717
				sha512_hash_buffer((unsigned char *)&j, sizeof(j), &b[z], 64);
718
			}
719
			if(fwrite(&b[0], sizeof(b), 1, f) != 1) break;
720
		}
721
		memset(&j, 0, sizeof(j));
722
		if(fflush(f)) break;
723
		if(fsync(fileno(f))) break;
724
	}
725
	fclose(f);
726
727
	/*
728
	 * Use all 512 bits of hash output
729
	 */
730
	memcpy(&b[0], &s.sha_out[0], 64);
731
	memset(&s, 0, sizeof(s));
732
733
	/*
734
	 * Read 32 bytes of random entropy from kernel's random
735
	 * number generator. This code may be executed early on startup
736
	 * scripts and amount of random entropy may be non-existent.
737
	 * SHA-512 of old swap data is used as workaround for missing
738
	 * entropy in kernel's random number generator.
739
	 */
740
	if(!(f = fopen("/dev/urandom", "r"))) {
741
		fprintf(stderr, _("swapon: unable to open /dev/urandom\n"));
742
		goto errout0;
743
	}
744
	fread(&b[64], 32, 1, f);
745
746
	/*
747
	 * Set up struct loop_info64
748
	 */
749
	if((ffd = open(partition, O_RDWR)) < 0) {
750
		fprintf(stderr, _("swapon: unable to open swap device %s\n"), partition);
751
		goto errout1;
752
	}
753
	memset(&loopinfo, 0, sizeof(loopinfo));
754
	strncpy((char *)loopinfo.lo_file_name, partition, LO_NAME_SIZE - 1);
755
	loopinfo.lo_file_name[LO_NAME_SIZE - 1] = 0;
756
	loopinfo.lo_encrypt_type = loop_crypt_type(encryption, &loopinfo.lo_encrypt_key_size, &apiName);
757
	if(loopinfo.lo_encrypt_type <= 1) {
758
		fprintf(stderr, _("swapon: unsupported swap encryption type %s\n"), encryption);
759
errout2:
760
		close(ffd);
761
errout1:
762
		fclose(f);
763
errout0:
764
		close(fd);
765
		memset(&loopinfo.lo_encrypt_key[0], 0, sizeof(loopinfo.lo_encrypt_key));
766
		memset(&multiKeyBits[0][0], 0, sizeof(multiKeyBits));
767
		return 0;
768
	}
769
	loopinfo.lo_offset = page_size;
770
	/* single-key hash */
771
	sha512_hash_buffer(&b[0], 64+32, &loopinfo.lo_encrypt_key[0], sizeof(loopinfo.lo_encrypt_key));
772
	/* multi-key hash */
773
	x = 0;
774
	while(x < 65) {
775
		fread(&b[64+32], 16, 1, f);
776
		sha512_hash_buffer(&b[0], 64+32+16, &multiKeyBits[x][0], 32);
777
		x++;
778
	}	
779
780
	/*
781
	 * Try to set up single-key loop
782
	 */
783
	if(ioctl(fd, LOOP_SET_FD, ffd) < 0) {
784
		fprintf(stderr, _("swapon: LOOP_SET_FD failed\n"));
785
		goto errout2;
786
	}
787
	if ((loopinfo.lo_encrypt_type == 18) || (loop_set_status64_ioctl(fd, &loopinfo) < 0)) {
788
		if(try_cryptoapi_loop_interface(fd, &loopinfo, apiName) < 0) {
789
			fprintf(stderr, _("swapon: LOOP_SET_STATUS failed\n"));
790
			ioctl(fd, LOOP_CLR_FD, 0);
791
			goto errout2;
792
		}
793
	}
794
795
	/*
796
	 * Try to put loop to multi-key v3 or v2 mode.
797
	 * If this fails, then let it operate in single-key mode.
798
	 */
799
	if(ioctl(fd, LOOP_MULTI_KEY_SETUP_V3, &multiKeyBits[0][0]) < 0) {
800
		ioctl(fd, LOOP_MULTI_KEY_SETUP, &multiKeyBits[0][0]);
801
	}
802
803
	/*
804
	 * Loop is now set up. Clean up the keys.
805
	 */
806
	memset(&loopinfo.lo_encrypt_key[0], 0, sizeof(loopinfo.lo_encrypt_key));
807
	memset(&multiKeyBits[0][0], 0, sizeof(multiKeyBits));
808
	close(ffd);
809
	fclose(f);
810
	close(fd);
811
812
	/*
813
	 * Write 40 KB of zeroes to loop device. That same data is written
814
	 * to underlying partition in encrypted form. This is done to guarantee
815
	 * that next time encrypted swap is initialized, the SHA-512 hash will
816
	 * be different. And, if encrypted swap data writes over this data, that's
817
	 * even better.
818
	 */
819
	if(!(f = fopen(loop, "r+"))) {
820
		fprintf(stderr, _("swapon: unable to open loop device %s\n"), loop);
821
		return 0;
822
	}
823
	memset(&b[0], 0, sizeof(b));
824
	for(x = 0; x < 10; x++) {
825
		if(fwrite(&b[0], sizeof(b), 1, f) != 1) break;
826
	}
827
	fflush(f);
828
	fsync(fileno(f));
829
	fclose(f);
830
	sync();
831
832
	/*
833
	 * Run mkswap on loop device so that kernel understands it as swap.
834
	 * Redirect stderr to /dev/null and ignore exit value.
835
	 */
836
	if(!(x = fork())) {
837
		if((x = open("/dev/null", O_WRONLY)) >= 0) {
838
			dup2(x, 2);
839
			close(x);
840
		}
841
		a[0] = "mkswap";
842
		a[1] = loop;
843
		a[2] = 0;
844
		execvp(a[0], &a[0]);
845
		execv("/sbin/mkswap", &a[0]);
846
		/* error to stdout, stderr is directed to /dev/null */
847
		printf(_("swapon: unable to execute mkswap\n"));
848
		exit(1);
849
	}
850
	if(x == -1) {
851
		fprintf(stderr, _("swapon: fork failed\n"));
852
		return 0;
853
	}
854
	waitpid(x, &y, 0);
855
	sync();
856
857
	return 1;
858
}
859
860
static void
861
shutdown_encrypted_swap(char *loop)
862
{
863
	int fd;
864
	struct stat statbuf;
865
	struct loop_info64 loopinfo;
866
	unsigned char b[32];
867
	FILE *f;
868
869
	if(stat(loop, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) {
870
		if((fd = open(loop, O_RDWR)) >= 0) {
871
			if(!loop_get_status64_ioctl(fd, &loopinfo)) {
872
				/*
873
				 * Read 32 bytes of random data from kernel's random
874
				 * number generator and write that to loop device.
875
				 * This preserves some of kernel's random entropy
876
				 * to next activation of encrypted swap on this
877
				 * partition.
878
				 */
879
				if((f = fopen("/dev/urandom", "r")) != NULL) {
880
					fread(&b[0], 32, 1, f);
881
					fclose(f);
882
					write(fd, &b[0], 32);
883
					fsync(fd);
884
				}
885
			}
886
			close(fd);
887
		}
888
		sync();
889
		if((fd = open(loop, O_RDONLY)) >= 0) {
890
			if(!loop_get_status64_ioctl(fd, &loopinfo)) {
891
				ioctl(fd, LOOP_CLR_FD, 0);
892
			}
893
			close(fd);
894
		}
895
	}
896
}
897
898
static int
623
swapon_all(void) {
899
swapon_all(void) {
624
	FILE *fp;
900
	FILE *fp;
625
	struct mntent *fstab;
901
	struct mntent *fstab;
Lines 636-646 Link Here
636
		int skip = 0, nofail = ifexists;
912
		int skip = 0, nofail = ifexists;
637
		int pri = priority, dsc = discard;
913
		int pri = priority, dsc = discard;
638
		char *opt, *opts;
914
		char *opt, *opts;
915
		char *loop = NULL, *encryption = NULL;
639
916
640
		if (!streq(fstab->mnt_type, MNTTYPE_SWAP))
917
		if (!streq(fstab->mnt_type, MNTTYPE_SWAP))
641
			continue;
918
			continue;
642
919
643
		opts = strdup(fstab->mnt_opts);
920
		opts = strdup(fstab->mnt_opts);
921
		if (!opts) {
922
			fprintf(stderr, "not enough memory");
923
			exit(1);
924
		}
644
925
645
		for (opt = strtok(opts, ","); opt != NULL;
926
		for (opt = strtok(opts, ","); opt != NULL;
646
		     opt = strtok(NULL, ",")) {
927
		     opt = strtok(NULL, ",")) {
Lines 652-659 Link Here
652
				skip = 1;
933
				skip = 1;
653
			if (strcmp(opt, "nofail") == 0)
934
			if (strcmp(opt, "nofail") == 0)
654
				nofail = 1;
935
				nofail = 1;
936
			if (strncmp(opt, "loop=", 5) == 0)
937
				loop = opt + 5;
938
			if (strncmp(opt, "encryption=", 11) == 0)
939
				encryption = opt + 11;
655
		}
940
		}
656
		free(opts);
657
941
658
		if (skip)
942
		if (skip)
659
			continue;
943
			continue;
Lines 665-677 Link Here
665
			continue;
949
			continue;
666
		}
950
		}
667
951
668
		if (!is_in_proc_swaps(special) &&
952
		if (loop && encryption) {
669
		    (!nofail || !access(special, R_OK)))
953
			if(!is_in_proc_swaps(loop) && (!nofail || !access(special, R_OK))) {
954
				if (!prepare_encrypted_swap(special, loop, encryption)) {
955
					status |= -1;
956
					continue;
957
				}
958
				status |= do_swapon(loop, pri, dsc, CANONIC);
959
			}
960
			continue;
961
		}
962
		if (!is_in_proc_swaps(special) && (!nofail || !access(special, R_OK))) {
670
			status |= do_swapon(special, pri, dsc, CANONIC);
963
			status |= do_swapon(special, pri, dsc, CANONIC);
671
964
		}
672
		free((void *) special);
673
	}
965
	}
674
	fclose(fp);
966
	endmntent(fp);
675
967
676
	return status;
968
	return status;
677
}
969
}
Lines 838-843 Link Here
838
1130
839
		while ((fstab = getmntent(fp)) != NULL) {
1131
		while ((fstab = getmntent(fp)) != NULL) {
840
			const char *special;
1132
			const char *special;
1133
			int skip = 0;
1134
			char *opt, *opts;
1135
			char *loop = NULL, *encryption = NULL;
841
1136
842
			if (!streq(fstab->mnt_type, MNTTYPE_SWAP))
1137
			if (!streq(fstab->mnt_type, MNTTYPE_SWAP))
843
				continue;
1138
				continue;
Lines 846-855 Link Here
846
			if (!special)
1141
			if (!special)
847
				continue;
1142
				continue;
848
1143
849
			if (!is_in_proc_swaps(special))
1144
			opts = strdup(fstab->mnt_opts);
1145
			if (!opts) {
1146
				fprintf(stderr, "not enough memory");
1147
				exit(1);
1148
			}
1149
			for (opt = strtok(opts, ","); opt != NULL; opt = strtok(NULL, ",")) {
1150
				if (strcmp(opt, "noauto") == 0)
1151
					skip = 1;
1152
				if (strncmp(opt, "loop=", 5) == 0)
1153
					loop = opt + 5;
1154
				if (strncmp(opt, "encryption=", 11) == 0)
1155
					encryption = opt + 11;
1156
			}
1157
			if (loop && encryption) {
1158
				if (!is_in_proc_swaps(loop)) {  
1159
					if(skip)
1160
						continue;
1161
					do_swapoff(loop, QUIET, CANONIC);
1162
				}
1163
				shutdown_encrypted_swap(loop);
1164
				continue;
1165
			}
1166
			if(skip)
1167
				continue;
1168
			if (!is_in_proc_swaps(special)) {
850
				do_swapoff(special, QUIET, CANONIC);
1169
				do_swapoff(special, QUIET, CANONIC);
1170
			}
851
		}
1171
		}
852
		fclose(fp);
1172
		endmntent(fp);
853
	}
1173
	}
854
1174
855
	return status;
1175
	return status;

Return to bug 405805