501abeb43f
race condition holes, use mode 0700 for dir creation
171 lines
6.2 KiB
Diff
171 lines
6.2 KiB
Diff
--- cpio-2.6/src/copyin.c.lfs 2005-07-01 13:48:05.000000000 +0200
|
||
+++ cpio-2.6/src/copyin.c 2005-07-01 13:48:18.000000000 +0200
|
||
@@ -106,7 +106,7 @@
|
||
header type. */
|
||
|
||
static void
|
||
-tape_skip_padding (int in_file_des, int offset)
|
||
+tape_skip_padding (int in_file_des, unsigned long offset)
|
||
{
|
||
int pad;
|
||
|
||
--- cpio-2.6/src/extern.h.lfs 2004-09-08 12:49:57.000000000 +0200
|
||
+++ cpio-2.6/src/extern.h 2005-07-01 13:47:20.000000000 +0200
|
||
@@ -161,13 +161,13 @@
|
||
void tape_empty_output_buffer P_((int out_des));
|
||
void disk_empty_output_buffer P_((int out_des));
|
||
void swahw_array P_((char *ptr, int count));
|
||
-void tape_buffered_write P_((char *in_buf, int out_des, long num_bytes));
|
||
+void tape_buffered_write P_((char *in_buf, int out_des, unsigned long num_bytes));
|
||
void tape_buffered_read P_((char *in_buf, int in_des, long num_bytes));
|
||
int tape_buffered_peek P_((char *peek_buf, int in_des, int num_bytes));
|
||
-void tape_toss_input P_((int in_des, long num_bytes));
|
||
-void copy_files_tape_to_disk P_((int in_des, int out_des, long num_bytes));
|
||
-void copy_files_disk_to_tape P_((int in_des, int out_des, long num_bytes, char *filename));
|
||
-void copy_files_disk_to_disk P_((int in_des, int out_des, long num_bytes, char *filename));
|
||
+void tape_toss_input P_((int in_des, unsigned long num_bytes));
|
||
+void copy_files_tape_to_disk P_((int in_des, int out_des, unsigned long num_bytes));
|
||
+void copy_files_disk_to_tape P_((int in_des, int out_des, unsigned long num_bytes, char *filename));
|
||
+void copy_files_disk_to_disk P_((int in_des, int out_des, unsigned long num_bytes, char *filename));
|
||
void warn_if_file_changed P_((char *file_name, unsigned long old_file_size,
|
||
unsigned long old_file_mtime));
|
||
void create_all_directories P_((char *name));
|
||
--- cpio-2.6/src/util.c.lfs 2004-09-08 12:44:49.000000000 +0200
|
||
+++ cpio-2.6/src/util.c 2005-07-01 13:56:49.000000000 +0200
|
||
@@ -207,7 +207,7 @@
|
||
Exit with an error if end of file is reached. */
|
||
|
||
static int
|
||
-disk_fill_input_buffer (int in_des, int num_bytes)
|
||
+disk_fill_input_buffer (int in_des, unsigned long num_bytes)
|
||
{
|
||
in_buff = input_buffer;
|
||
num_bytes = (num_bytes < DISK_IO_BLOCK_SIZE) ? num_bytes : DISK_IO_BLOCK_SIZE;
|
||
@@ -227,9 +227,9 @@
|
||
When `out_buff' fills up, flush it to file descriptor OUT_DES. */
|
||
|
||
void
|
||
-tape_buffered_write (char *in_buf, int out_des, long num_bytes)
|
||
+tape_buffered_write (char *in_buf, int out_des, unsigned long num_bytes)
|
||
{
|
||
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
+ register unsigned long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
register long space_left; /* Room left in output buffer. */
|
||
|
||
while (bytes_left > 0)
|
||
@@ -254,9 +254,9 @@
|
||
When `out_buff' fills up, flush it to file descriptor OUT_DES. */
|
||
|
||
void
|
||
-disk_buffered_write (char *in_buf, int out_des, long num_bytes)
|
||
+disk_buffered_write (char *in_buf, int out_des, unsigned long num_bytes)
|
||
{
|
||
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
+ register unsigned long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
register long space_left; /* Room left in output buffer. */
|
||
|
||
while (bytes_left > 0)
|
||
@@ -376,9 +376,9 @@
|
||
/* Skip the next NUM_BYTES bytes of file descriptor IN_DES. */
|
||
|
||
void
|
||
-tape_toss_input (int in_des, long num_bytes)
|
||
+tape_toss_input (int in_des, unsigned long num_bytes)
|
||
{
|
||
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
+ register unsigned long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
||
register long space_left; /* Bytes to copy from input buffer. */
|
||
|
||
while (bytes_left > 0)
|
||
@@ -404,12 +404,12 @@
|
||
}
|
||
|
||
static void
|
||
-write_nuls_to_file (long num_bytes, int out_des,
|
||
+write_nuls_to_file (unsigned long num_bytes, int out_des,
|
||
void (*writer) (char *in_buf, int out_des, long num_bytes))
|
||
{
|
||
- long blocks;
|
||
+ unsigned long blocks;
|
||
long extra_bytes;
|
||
- long i;
|
||
+ unsigned long i;
|
||
|
||
blocks = num_bytes / 512;
|
||
extra_bytes = num_bytes % 512;
|
||
@@ -428,10 +428,10 @@
|
||
NUM_BYTES is the number of bytes to copy. */
|
||
|
||
void
|
||
-copy_files_tape_to_disk (int in_des, int out_des, long num_bytes)
|
||
+copy_files_tape_to_disk (int in_des, int out_des, unsigned long num_bytes)
|
||
{
|
||
- long size;
|
||
- long k;
|
||
+ unsigned long size;
|
||
+ unsigned long k;
|
||
|
||
while (num_bytes > 0)
|
||
{
|
||
@@ -458,13 +458,13 @@
|
||
NUM_BYTES is the number of bytes to copy. */
|
||
|
||
void
|
||
-copy_files_disk_to_tape (int in_des, int out_des, long num_bytes,
|
||
+copy_files_disk_to_tape (int in_des, int out_des, unsigned long num_bytes,
|
||
char *filename)
|
||
{
|
||
- long size;
|
||
- long k;
|
||
+ unsigned long size;
|
||
+ unsigned long k;
|
||
int rc;
|
||
- long original_num_bytes;
|
||
+ unsigned long original_num_bytes;
|
||
|
||
original_num_bytes = num_bytes;
|
||
|
||
@@ -476,10 +476,10 @@
|
||
num_bytes : DISK_IO_BLOCK_SIZE))
|
||
{
|
||
if (rc > 0)
|
||
- error (0, 0, _("File %s shrunk by %ld bytes, padding with zeros"),
|
||
+ error (0, 0, _("File %s shrunk by %lld bytes, padding with zeros"),
|
||
filename, num_bytes);
|
||
else
|
||
- error (0, 0, _("Read error at byte %ld in file %s, padding with zeros"),
|
||
+ error (0, 0, _("Read error at byte %lld in file %s, padding with zeros"),
|
||
original_num_bytes - num_bytes, filename);
|
||
write_nuls_to_file (num_bytes, out_des, tape_buffered_write);
|
||
break;
|
||
@@ -505,12 +505,12 @@
|
||
NUM_BYTES is the number of bytes to copy. */
|
||
|
||
void
|
||
-copy_files_disk_to_disk (int in_des, int out_des, long num_bytes,
|
||
+copy_files_disk_to_disk (int in_des, int out_des, unsigned long num_bytes,
|
||
char *filename)
|
||
{
|
||
- long size;
|
||
- long k;
|
||
- long original_num_bytes;
|
||
+ unsigned long size;
|
||
+ unsigned long k;
|
||
+ unsigned long original_num_bytes;
|
||
int rc;
|
||
|
||
original_num_bytes = num_bytes;
|
||
@@ -520,10 +520,10 @@
|
||
if (rc = disk_fill_input_buffer (in_des, num_bytes))
|
||
{
|
||
if (rc > 0)
|
||
- error (0, 0, _("File %s shrunk by %ld bytes, padding with zeros"),
|
||
+ error (0, 0, _("File %s shrunk by %lld bytes, padding with zeros"),
|
||
filename, num_bytes);
|
||
else
|
||
- error (0, 0, _("Read error at byte %ld in file %s, padding with zeros"),
|
||
+ error (0, 0, _("Read error at byte %lld in file %s, padding with zeros"),
|
||
original_num_bytes - num_bytes, filename);
|
||
write_nuls_to_file (num_bytes, out_des, disk_buffered_write);
|
||
break;
|