Rebase from a new upstream, dropped patches

- Several binaries moved from bin to sbin
This commit is contained in:
Frantisek Kluknavsky 2016-07-13 15:13:08 +02:00
parent 9fa91f1585
commit 35ef0f18d9
13 changed files with 15 additions and 1719 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
udftools-1.0.0b3.tar.gz
/udftools-1.2.tar.gz

View File

@ -1 +1 @@
2f491ddd63f31040797236fe18db9e60 udftools-1.0.0b3.tar.gz
3b538c0ee1e77abae665fdd6f68f37bb udftools-1.2.tar.gz

View File

@ -1,40 +0,0 @@
diff -up udftools-1.0.0b3/libudffs/extent.c.extsize udftools-1.0.0b3/libudffs/extent.c
--- udftools-1.0.0b3/libudffs/extent.c.extsize 2012-01-26 09:45:22.217856499 +0100
+++ udftools-1.0.0b3/libudffs/extent.c 2012-01-26 09:45:43.142855067 +0100
@@ -50,7 +50,7 @@ cont:
while (start_ext != NULL && start_ext->blocks < blocks)
start_ext = next_extent(start_ext->next, type);
- if (start_ext->start % offset)
+ if (start_ext != NULL && start_ext->start % offset)
{
inc = offset - (start_ext->start % offset);
if (start_ext->blocks - inc < blocks)
@@ -62,7 +62,7 @@ cont:
else
inc = 0;
- return start_ext->start + inc;
+ return start_ext ? start_ext->start + inc : NULL;
}
struct udf_extent *prev_extent(struct udf_extent *start_ext, enum udf_space_type type)
@@ -81,7 +81,7 @@ cont:
while (start_ext != NULL && start_ext->blocks < blocks)
start_ext = prev_extent(start_ext->prev, type);
- if ((start_ext->start + start_ext->blocks) % offset)
+ if (start_ext != NULL && (start_ext->start + start_ext->blocks) % offset)
{
dec = (start_ext->start + start_ext->blocks) % offset;
if (start_ext->blocks - dec < blocks)
@@ -93,7 +93,7 @@ cont:
else
dec = 0;
- return start_ext->start + start_ext->blocks - dec - blocks;
+ return start_ext ? start_ext->start + start_ext->blocks - dec - blocks : NULL;
}
struct udf_extent *find_extent(struct udf_disc *disc, uint32_t start)

View File

@ -1,546 +0,0 @@
Nur in udftools-1.0.0b3-new/cdrwtool: cdrwtool.
diff -ur udftools-1.0.0b3/cdrwtool/cdrwtool.c udftools-1.0.0b3-new/cdrwtool/cdrwtool.c
--- udftools-1.0.0b3/cdrwtool/cdrwtool.c 2002-12-28 05:48:51.000000000 +0100
+++ udftools-1.0.0b3-new/cdrwtool/cdrwtool.c 2007-08-23 13:28:23.000000000 +0200
@@ -27,6 +27,7 @@
#include <unistd.h>
#include <getopt.h>
#include <signal.h>
+#include <limits.h>
#include <sys/ioctl.h>
#include <asm/param.h>
Nur in udftools-1.0.0b3-new/cdrwtool: cdrwtool.o.
Nur in udftools-1.0.0b3-new/cdrwtool: defaults.o.
Nur in udftools-1.0.0b3-new/cdrwtool: .deps.
Nur in udftools-1.0.0b3-new/cdrwtool: .libs.
Nur in udftools-1.0.0b3-new/cdrwtool: main.o.
Nur in udftools-1.0.0b3-new/cdrwtool: Makefile.
Nur in udftools-1.0.0b3-new/cdrwtool: mkudffs.o.
Nur in udftools-1.0.0b3-new/cdrwtool: options.o.
diff -ur udftools-1.0.0b3/config/config.guess udftools-1.0.0b3-new/config/config.guess
--- udftools-1.0.0b3/config/config.guess 2004-02-23 10:33:44.000000000 +0100
+++ udftools-1.0.0b3-new/config/config.guess 2007-08-23 13:27:41.000000000 +0200
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2003-01-10'
+timestamp='2003-06-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -106,6 +106,7 @@
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
@@ -135,6 +136,13 @@
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+## for Red Hat Linux
+if test -f /etc/redhat-release ; then
+ VENDOR=redhat ;
+else
+ VENDOR= ;
+fi
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -235,74 +243,56 @@
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
- *:MicroBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
- exit 0 ;;
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- eval $set_cc_for_build
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
- if test "$?" = 0 ; then
- case `$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- 3-1307)
- UNAME_MACHINE="alphaev7"
- ;;
- esac
- fi
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
+ Alpha*:OpenVMS:*:*)
+ echo alpha-hp-vms
+ exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
@@ -341,6 +331,9 @@
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit 0 ;;
DRS?6000:UNIX_SV:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7 && exit 0 ;;
@@ -765,7 +758,7 @@
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
- *:FreeBSD:*:*)
+ *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
# Determine whether the default compiler uses glibc.
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -788,8 +781,8 @@
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;;
- x86:Interix*:3*)
- echo i586-pc-interix3
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
exit 0 ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
@@ -816,10 +809,20 @@
echo ${UNAME_MACHINE}-pc-minix
exit 0 ;;
arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ARM_EABI__ >/dev/null
+ then
+ echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
+ else
+ echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnueabi
+ fi
+ exit 0 ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
exit 0 ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
exit 0 ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -863,10 +866,10 @@
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-${VENDOR:-unknown}-linux-gnu
exit 0 ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-${VENDOR:-unknown}-linux-gnu
exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -894,7 +897,10 @@
echo hppa64-unknown-linux-gnu
exit 0 ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
+ exit 0 ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -903,7 +909,7 @@
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo x86_64-${VENDOR:-unknown}-linux-gnu
exit 0 ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
@@ -955,7 +961,7 @@
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
i*86:DYNIX/ptx:4*:*)
@@ -1054,7 +1060,7 @@
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1210,6 +1216,9 @@
*:ITS:*:*)
echo pdp10-unknown-its
exit 0 ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
diff -ur udftools-1.0.0b3/config/config.sub udftools-1.0.0b3-new/config/config.sub
--- udftools-1.0.0b3/config/config.sub 2004-02-23 10:33:44.000000000 +0100
+++ udftools-1.0.0b3-new/config/config.sub 2007-08-23 13:27:41.000000000 +0200
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2003-01-03'
+timestamp='2003-06-18'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -229,7 +229,7 @@
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | clipper \
+ | c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
@@ -258,11 +258,11 @@
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| s390 | s390x \
- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
| strongarm \
- | tahoe | thumb | tic80 | tron \
+ | tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xscale | xstormy16 | xtensa \
@@ -297,7 +297,7 @@
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
@@ -331,11 +331,13 @@
| pyramid-* \
| romp-* | rs6000-* \
| s390-* | s390x-* \
- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
@@ -373,6 +375,9 @@
basic_machine=a29k-none
os=-bsd
;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
amdahl)
basic_machine=580-amdahl
os=-sysv
@@ -768,18 +773,24 @@
pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
- pentiumii | pentium2)
+ pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- pentiumii-* | pentium2-*)
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pn)
basic_machine=pn-gould
;;
@@ -832,6 +843,10 @@
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
sequent)
basic_machine=i386-sequent
;;
@@ -839,6 +854,9 @@
basic_machine=sh-hitachi
os=-hms
;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
@@ -913,14 +931,18 @@
basic_machine=t90-cray
os=-unicos
;;
- tic4x | c4x*)
- basic_machine=tic4x-unknown
- os=-coff
- ;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
tx39)
basic_machine=mipstx39-unknown
;;
@@ -1023,13 +1045,13 @@
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
- sparc | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
@@ -1114,7 +1136,7 @@
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -microbsd*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1223,6 +1245,12 @@
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
-none)
;;
*)
@@ -1254,6 +1282,9 @@
arm*-semi)
os=-aout
;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
Nur in udftools-1.0.0b3-new: config.log.
Nur in udftools-1.0.0b3-new: config.status.
Nur in udftools-1.0.0b3-new/doc: Makefile.
Nur in udftools-1.0.0b3-new/include: config.h.
Nur in udftools-1.0.0b3-new/include: stamp-h1.
Nur in udftools-1.0.0b3-new: libtool.
Nur in udftools-1.0.0b3-new/libudffs: crc.lo.
Nur in udftools-1.0.0b3-new/libudffs: crc.o.
Nur in udftools-1.0.0b3-new/libudffs: .deps.
Nur in udftools-1.0.0b3-new/libudffs: desc.lo.
Nur in udftools-1.0.0b3-new/libudffs: desc.o.
Nur in udftools-1.0.0b3-new/libudffs: extent.lo.
Nur in udftools-1.0.0b3-new/libudffs: extent.o.
Nur in udftools-1.0.0b3-new/libudffs: file.lo.
Nur in udftools-1.0.0b3-new/libudffs: file.o.
Nur in udftools-1.0.0b3-new/libudffs: .libs.
Nur in udftools-1.0.0b3-new/libudffs: libudffs.la.
Nur in udftools-1.0.0b3-new/libudffs: Makefile.
Nur in udftools-1.0.0b3-new/libudffs: unicode.lo.
Nur in udftools-1.0.0b3-new/libudffs: unicode.o.
Nur in udftools-1.0.0b3-new: Makefile.
Nur in udftools-1.0.0b3-new/mkudffs: defaults.o.
Nur in udftools-1.0.0b3-new/mkudffs: .deps.
Nur in udftools-1.0.0b3-new/mkudffs: .libs.
Nur in udftools-1.0.0b3-new/mkudffs: main.o.
Nur in udftools-1.0.0b3-new/mkudffs: Makefile.
Nur in udftools-1.0.0b3-new/mkudffs: mkudffs.
Nur in udftools-1.0.0b3-new/mkudffs: mkudffs.o.
Nur in udftools-1.0.0b3-new/mkudffs: options.o.
Nur in udftools-1.0.0b3-new/pktsetup: .deps.
Nur in udftools-1.0.0b3-new/pktsetup: .libs.
Nur in udftools-1.0.0b3-new/pktsetup: Makefile.
Nur in udftools-1.0.0b3-new/pktsetup: pktsetup.
diff -ur udftools-1.0.0b3/pktsetup/pktsetup.c udftools-1.0.0b3-new/pktsetup/pktsetup.c
--- udftools-1.0.0b3/pktsetup/pktsetup.c 2007-08-23 13:30:18.000000000 +0200
+++ udftools-1.0.0b3-new/pktsetup/pktsetup.c 2007-08-23 13:29:58.000000000 +0200
@@ -26,6 +26,8 @@
#include <bits/types.h>
#include <sys/types.h>
#include <string.h>
+#include <limits.h>
+#include <stdlib.h>
#include <linux/cdrom.h>
@@ -86,7 +88,7 @@
{
int pkt_fd, dev_fd, cmd;
- if ((pkt_fd = open(pkt_device, O_RDONLY | O_CREAT)) == -1) {
+ if ((pkt_fd = open(pkt_device, O_RDONLY | O_CREAT, 0600)) == -1) {
perror("open packet device");
return;
}
Nur in udftools-1.0.0b3-new/pktsetup: pktsetup.o.
Nur in udftools-1.0.0b3-new/udfct: Makefile.
Nur in udftools-1.0.0b3-new/udffsck: .deps.
Nur in udftools-1.0.0b3-new/udffsck: .libs.
Nur in udftools-1.0.0b3-new/udffsck: main.o.
Nur in udftools-1.0.0b3-new/udffsck: Makefile.
Nur in udftools-1.0.0b3-new/udffsck: udffsck.
Nur in udftools-1.0.0b3-new/wrudf: .deps.
Nur in udftools-1.0.0b3-new/wrudf: ide-pc.o.
Nur in udftools-1.0.0b3-new/wrudf: .libs.
Nur in udftools-1.0.0b3-new/wrudf: Makefile.
Nur in udftools-1.0.0b3-new/wrudf: wrudf.
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cdr.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cdrw.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cmnd.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf-desc.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf.o.

View File

@ -1,53 +0,0 @@
diff -up wrk/doc/cdrwtool.1.wrk wrk/doc/cdrwtool.1
--- wrk/doc/cdrwtool.1.wrk 2014-01-29 15:23:18.623940293 +0100
+++ wrk/doc/cdrwtool.1 2014-01-29 15:24:27.027471222 +0100
@@ -97,6 +97,10 @@ Close track.
.IP "\fB\-r \fItrack\fP"
Reserve track.
+.IP "\fB\-z \fIlength\fP"
+Fixed packet length.
+
+
.IP \fB\-s\fP
Set write parameters determined by
.BR "\-l" , " \-w" ", and" " \-p"
diff -up wrk/doc/mkudffs.8.wrk wrk/doc/mkudffs.8
--- wrk/doc/mkudffs.8.wrk 2014-01-29 15:47:54.095408327 +0100
+++ wrk/doc/mkudffs.8 2014-01-29 15:51:18.115200882 +0100
@@ -151,6 +151,13 @@ Use 16-bit unicode for file names
.TP
.B \-\-utf8
Use UTF-8 for file names
+.TP
+.B \-\-closed
+.TP
+.B \-\-bridge
+.TP
+.BI \-\-packetlen= " length "
+
.SH "EXIT STATUS"
.B mkudffs
diff -up wrk/doc/pktsetup.8.wrk wrk/doc/pktsetup.8
--- wrk/doc/pktsetup.8.wrk 2002-11-26 08:18:51.000000000 +0100
+++ wrk/doc/pktsetup.8 2014-01-29 15:36:29.509665177 +0100
@@ -37,6 +37,9 @@ pktsetup \- set up and tear down packet
.B pktsetup
.B \-d
.I packet_device
+.br
+.B pktsetup
+.B \-s
.ad b
.SH DESCRIPTION
.B Pktsetup
@@ -58,6 +61,8 @@ returns 0 on success, nonzero on failure
.IP "\fB\-d \fIpacket-device\fP"
Delete the association between the specified \fIpacket-device\fP
and its block device.
+.IP "\fB\-s"
+Show device mappings.
.SH EXAMPLE
The following commands provide an example of using the

View File

@ -1,131 +0,0 @@
diff -up udftools-1.0.0b3/mkudffs/defaults.c.mkudffs-bigendian udftools-1.0.0b3/mkudffs/defaults.c
--- udftools-1.0.0b3/mkudffs/defaults.c.mkudffs-bigendian 2007-08-23 13:41:29.000000000 +0200
+++ udftools-1.0.0b3/mkudffs/defaults.c 2007-08-23 13:42:16.000000000 +0200
@@ -69,7 +69,7 @@ struct primaryVolDesc default_pvd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_PVD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(1),
@@ -119,7 +119,7 @@ struct logicalVolDesc default_lvd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_LVD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct logicalVolDesc) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(2),
@@ -157,7 +157,7 @@ struct volDescPtr default_vdp =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_VDP),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct volDescPtr) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(3),
@@ -192,7 +192,7 @@ struct impUseVolDesc default_iuvd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_IUVD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct impUseVolDesc) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(4),
@@ -215,7 +215,7 @@ struct partitionDesc default_pd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_PD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct partitionDesc) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(5),
@@ -242,7 +242,7 @@ struct unallocSpaceDesc default_usd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_USD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct unallocSpaceDesc) - sizeof(tag)),
},
volDescSeqNum : constant_cpu_to_le32(6),
@@ -254,7 +254,7 @@ struct terminatingDesc default_td =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_TD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct terminatingDesc) - sizeof(tag)),
},
};
@@ -265,7 +265,7 @@ struct logicalVolIntegrityDesc default_l
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct logicalVolIntegrityDesc) - sizeof(tag)),
},
integrityType : constant_cpu_to_le32(LVID_INTEGRITY_TYPE_CLOSE),
@@ -295,7 +295,7 @@ struct sparingTable default_stable =
{
tagIdent : constant_cpu_to_le16(0),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct sparingTable) - sizeof(tag)),
},
sparingIdent :
@@ -387,7 +387,7 @@ struct fileSetDesc default_fsd =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_FSD),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct fileSetDesc) - sizeof(tag)),
},
interchangeLvl : constant_cpu_to_le16(2),
@@ -426,7 +426,7 @@ struct fileEntry default_fe =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
},
icbTag :
@@ -458,7 +458,7 @@ struct extendedFileEntry default_efe =
{
tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
descVersion : constant_cpu_to_le16(3),
- tagSerialNum : 1,
+ tagSerialNum : constant_cpu_to_le16(1),
descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
},
icbTag :
diff -up udftools-1.0.0b3/mkudffs/mkudffs.c.mkudffs-bigendian udftools-1.0.0b3/mkudffs/mkudffs.c
--- udftools-1.0.0b3/mkudffs/mkudffs.c.mkudffs-bigendian 2004-02-23 04:35:33.000000000 +0100
+++ udftools-1.0.0b3/mkudffs/mkudffs.c 2007-08-23 13:31:54.000000000 +0200
@@ -250,14 +250,14 @@ void split_space(struct udf_disc *disc)
if (size % offsets[PSPACE_SIZE])
size -= (size % offsets[PSPACE_SIZE]);
set_extent(disc, PSPACE, start, size);
- for (i=0; i<disc->udf_lvd[0]->numPartitionMaps; i++)
+ for (i=0; i<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); i++)
{
if (i == 1)
disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(0xFFFFFFFF);
else
disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(size);
}
- for (j=0; j<disc->udf_lvd[0]->numPartitionMaps; j++)
+ for (j=0; j<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); j++)
{
if (j == 1)
disc->udf_lvid->sizeTable[i+j] = cpu_to_le32(0xFFFFFFFF);

View File

@ -1,346 +0,0 @@
From: Peter Osterlund <petero2@telia.com>
Subject: Re: [RFC][PATCH] Control pktcdvd with an auxiliary character device
To: linux-kernel@vger.kernel.org
Cc: Christoph Hellwig <hch@infradead.org>, Arnd Bergmann <arnd@arndb.de>,
Jens Axboe <axboe@suse.de>, Andrew Morton <akpm@osdl.org>
Date: Wed Jul 14 02:17:27 2004 +0200
Peter Osterlund <petero2@telia.com> writes:
> Peter Osterlund <petero2@telia.com> writes:
>
> > Christoph Hellwig <hch@infradead.org> writes:
> >
> > > On Sun, Jul 11, 2004 at 01:20:45AM +0200, Arnd Bergmann wrote:
> > > > These are actually incorrect definitions since the ioctl argument is
> > > > not a pointer to unsigned int but instead just an int. However, that's
> > > > too late to fix without breaking the existing tools.
> > >
> > > The tools need to change anyway to get away from the broken behaviour to
> > > issue in ioctl on the actual block device to bind it..
> >
> > OK, I'll create a patch that gets rid of the ioctl interface and uses
> > an auxiliary character device instead to control device bindings.
>
> Here is a patch for 2.6.7-mm7 that does that. The driver creates a
> misc character device and bind/unbind of the block devices are
> controlled by ioctl commands on the char device.
>
> This patch needs corresponding changes in the pktsetup user space
> program. I'll post a patch for pktsetup as a separate message.
And here is a patch for udftools-1.0.0b3 that updates the pktsetup
program to make it able to use the character device for block device
setup/teardown.
---
udftools-1.0.0b3-petero/pktsetup/pktsetup.c | 245 +++++++++++++++++++++++++++-
1 files changed, 238 insertions(+), 7 deletions(-)
diff -puN pktsetup/pktsetup.c~pktsetup-char-dev pktsetup/pktsetup.c
--- udftools-1.0.0b3/pktsetup/pktsetup.c~pktsetup-char-dev 2004-07-12 19:57:51.000000000 +0200
+++ udftools-1.0.0b3-petero/pktsetup/pktsetup.c 2004-07-14 00:34:02.471317888 +0200
@@ -1,5 +1,6 @@
/*
* Copyright (c) 1999,2000 Jens Axboe <axboe@suse.de>
+ * Copyright (c) 2004 Peter Osterlund <petero2@telia.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,6 +20,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
+#include <sys/stat.h>
#include <unistd.h>
#include <getopt.h>
#include <bits/types.h>
@@ -33,8 +35,33 @@
#define PACKET_SETUP_DEV _IOW('X', 1, unsigned int)
#define PACKET_TEARDOWN_DEV _IOW('X', 2, unsigned int)
#endif
+#ifndef PACKET_CTRL_CMD
+#define PACKET_CTRL_CMD _IOWR('X', 1, struct pkt_ctrl_command)
+#endif
+
+#define MAJOR(dev) ((dev & 0xfff00) >> 8)
+#define MINOR(dev) ((dev & 0xff) | ((dev >> 12) & 0xfff00))
+#define MKDEV(ma,mi) ((mi & 0xff) | (ma << 8) | ((mi & ~0xff) << 12))
+
+#define MISC_MAJOR 10
+#define CTL_DIR "/dev/pktcdvd"
+#define CTL_DEV "control"
+
+#define PKT_CTRL_CMD_SETUP 0
+#define PKT_CTRL_CMD_TEARDOWN 1
+#define PKT_CTRL_CMD_STATUS 2
+
+struct pkt_ctrl_command {
+ __u32 command; /* in: Setup, teardown, status */
+ __u32 dev_index; /* in/out: Device index */
+ __u32 dev; /* in/out: Device nr for cdrw device */
+ __u32 pkt_dev; /* out: Device nr for packet device */
+ __u32 num_devices; /* out: Largest device index + 1 */
+ __u32 padding;
+};
+
-int init_cdrom(int fd)
+static int init_cdrom(int fd)
{
if (ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) < 0) {
perror("drive not ready\n");
@@ -54,7 +81,7 @@ int init_cdrom(int fd)
return 0;
}
-void setup_dev(char *pkt_device, char *device, int rem)
+static void setup_dev(char *pkt_device, char *device, int rem)
{
int pkt_fd, dev_fd, cmd;
@@ -88,29 +115,233 @@ void setup_dev(char *pkt_device, char *d
close(pkt_fd);
}
-int usage(void)
+static int usage(void)
{
- printf("pktsetup /dev/pktcdvd0 /dev/cdrom\tsetup device\n");
- printf("pktsetup -d /dev/pktcdvd0\t\ttear down device\n");
+ printf("For pktcdvd < 0.2.0:\n");
+ printf(" pktsetup /dev/pktcdvd0 /dev/cdrom setup device\n");
+ printf(" pktsetup -d /dev/pktcdvd0 tear down device\n");
+ printf("For pktcdvd >= 0.2.0:\n");
+ printf(" pktsetup dev_name /dev/cdrom setup device\n");
+ printf(" pktsetup -d dev_name tear down device\n");
+ printf(" pktsetup -d major:minor tear down device\n");
+ printf(" pktsetup -s show device mappings\n");
return 1;
}
+/*
+ * Find the minor device number for the pktcdvd control device.
+ */
+static int get_misc_minor(void)
+{
+ int minor;
+ char name[64];
+ FILE *f;
+
+ if ((f = fopen("/proc/misc", "r")) == NULL)
+ return -1;
+ while (fscanf(f, " %d %64s", &minor, name) == 2) {
+ if (strcmp(name, "pktcdvd") == 0) {
+ fclose(f);
+ return minor;
+ }
+ }
+ fclose(f);
+ return -1;
+}
+
+static const char *pkt_dev_name(const char *dev)
+{
+ static char buf[128];
+ snprintf(buf, sizeof(buf), "%s/%s", CTL_DIR, dev);
+ return buf;
+}
+
+static void create_ctl_dev(void)
+{
+ int misc_minor;
+ struct stat stat_buf;
+ int dev;
+
+ if ((misc_minor = get_misc_minor()) < 0) {
+ system("/sbin/modprobe pktcdvd");
+ misc_minor = get_misc_minor();
+ }
+ if (misc_minor < 0) {
+ fprintf(stderr, "Can't find pktcdvd character device\n");
+ return;
+ }
+ dev = MKDEV(MISC_MAJOR, misc_minor);
+
+ if ((stat(pkt_dev_name(CTL_DEV), &stat_buf) >= 0) &&
+ S_ISCHR(stat_buf.st_mode) && (stat_buf.st_rdev == dev))
+ return; /* Already set up */
+
+ mkdir(CTL_DIR, 0755);
+ unlink(pkt_dev_name(CTL_DEV));
+ mknod(pkt_dev_name(CTL_DEV), S_IFCHR | 0644, dev);
+}
+
+static int remove_stale_dev_node(int ctl_fd, char *devname)
+{
+ struct stat stat_buf;
+ int i, dev;
+ struct pkt_ctrl_command c;
+
+ if (stat(pkt_dev_name(devname), &stat_buf) < 0)
+ return 0;
+ if (!S_ISBLK(stat_buf.st_mode))
+ return 1;
+ dev = stat_buf.st_rdev;
+ memset(&c, 0, sizeof(struct pkt_ctrl_command));
+ for (i = 0; ; i++) {
+ c.command = PKT_CTRL_CMD_STATUS;
+ c.dev_index = i;
+ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) {
+ perror("ioctl");
+ return 1;
+ }
+ if (i >= c.num_devices)
+ break;
+ if (c.pkt_dev == dev)
+ return 1; /* busy */
+ }
+ unlink(pkt_dev_name(devname));
+ return 0;
+}
+
+static void setup_dev_chardev(char *pkt_device, char *device, int rem)
+{
+ struct pkt_ctrl_command c;
+ struct stat stat_buf;
+ int ctl_fd, dev_fd;
+
+ memset(&c, 0, sizeof(struct pkt_ctrl_command));
+
+ create_ctl_dev();
+ if ((ctl_fd = open(pkt_dev_name(CTL_DEV), O_RDONLY)) < 0) {
+ perror("ctl open");
+ return;
+ }
+
+ if (!rem) {
+ if ((dev_fd = open(device, O_RDONLY | O_NONBLOCK)) == -1) {
+ perror("open cd-rom");
+ goto out_close;
+ }
+ if (init_cdrom(dev_fd)) {
+ close(dev_fd);
+ goto out_close;
+ }
+ close(dev_fd);
+
+ if (stat(device, &stat_buf) < 0) {
+ perror("stat cd-rom");
+ goto out_close;
+ }
+ if (!S_ISBLK(stat_buf.st_mode)) {
+ fprintf(stderr, "Not a block device\n");
+ goto out_close;
+ }
+ c.command = PKT_CTRL_CMD_SETUP;
+ c.dev = stat_buf.st_rdev;
+
+ if (remove_stale_dev_node(ctl_fd, pkt_device) != 0) {
+ fprintf(stderr, "Device node '%s' already in use\n", pkt_device);
+ goto out_close;
+ }
+ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) {
+ perror("ioctl");
+ goto out_close;
+ }
+ mknod(pkt_dev_name(pkt_device), S_IFBLK | 0640, c.pkt_dev);
+ } else {
+ int major, minor, remove_node;
+
+ if ((stat(pkt_dev_name(pkt_device), &stat_buf) >= 0) &&
+ S_ISBLK(stat_buf.st_mode)) {
+ major = MAJOR(stat_buf.st_rdev);
+ minor = MINOR(stat_buf.st_rdev);
+ remove_node = 1;
+ } else if (sscanf(pkt_device, "%d:%d", &major, &minor) == 2) {
+ remove_node = 0;
+ } else {
+ fprintf(stderr, "Can't find major/minor numbers\n");
+ goto out_close;
+ }
+
+ c.command = PKT_CTRL_CMD_TEARDOWN;
+ c.pkt_dev = MKDEV(major, minor);
+ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) {
+ perror("ioctl");
+ goto out_close;
+ }
+ if (remove_node)
+ unlink(pkt_dev_name(pkt_device));
+ }
+
+out_close:
+ close(ctl_fd);
+}
+
+static void show_mappings(void)
+{
+ struct pkt_ctrl_command c;
+ int ctl_fd, i;
+
+ memset(&c, 0, sizeof(struct pkt_ctrl_command));
+
+ create_ctl_dev();
+ if ((ctl_fd = open(pkt_dev_name(CTL_DEV), O_RDONLY)) < 0) {
+ perror("ctl open");
+ return;
+ }
+
+ for (i = 0; ; i++) {
+ c.command = PKT_CTRL_CMD_STATUS;
+ c.dev_index = i;
+ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) {
+ perror("ioctl");
+ goto out_close;
+ }
+ if (i >= c.num_devices)
+ break;
+ if (c.dev) {
+ printf("%2d : %d:%d -> %d:%d\n",
+ i, MAJOR(c.pkt_dev), MINOR(c.pkt_dev),
+ MAJOR(c.dev), MINOR(c.dev));
+ }
+ }
+
+out_close:
+ close(ctl_fd);
+}
+
int main(int argc, char **argv)
{
int rem = 0, c;
+ char *pkt_device;
+ char *device;
if (argc == 1)
return usage();
- while ((c = getopt(argc, argv, "d")) != EOF) {
+ while ((c = getopt(argc, argv, "ds?")) != EOF) {
switch (c) {
case 'd':
rem = 1;
break;
+ case 's':
+ show_mappings();
+ return 0;
default:
return usage();
}
}
- setup_dev(argv[optind], argv[optind + 1], rem);
+ pkt_device = argv[optind];
+ device = argv[optind + 1];
+ if (strchr(pkt_device, '/'))
+ setup_dev(pkt_device, device, rem);
+ else
+ setup_dev_chardev(pkt_device, device, rem);
return 0;
}
_
--
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340

View File

@ -1,160 +0,0 @@
Error: CONSTANT_EXPRESSION_RESULT:
/builddir/build/BUILD/udftools-1.0.0b3/cdrwtool/cdrwtool.c:626: result_independent_of_operands: (ret == ioctl(fd, 21289, 1)) < 0 is always false regardless of the values of its operands. This occurs as the logical operand of if.
Possible buffer overflow of static allocated variable "device".
diff -up udftools-1.0.0b3/cdrwtool/cdrwtool.c.staticanal udftools-1.0.0b3/cdrwtool/cdrwtool.c
--- udftools-1.0.0b3/cdrwtool/cdrwtool.c.staticanal 2012-01-26 16:20:44.518234366 +0100
+++ udftools-1.0.0b3/cdrwtool/cdrwtool.c 2012-01-26 16:20:44.537234366 +0100
@@ -623,7 +623,7 @@ int cdrom_open_check(int fd)
if ((ret = ioctl(fd, CDROM_CLEAR_OPTIONS, CDO_LOCK)) < 0)
return ret;
- if ((ret == ioctl(fd, CDROM_LOCKDOOR, 1)) < 0) {
+ if ((ret = ioctl(fd, CDROM_LOCKDOOR, 1)) < 0) {
fprintf(stderr, "CD-ROM appears to already be opened\n");
return 1;
}
diff -up udftools-1.0.0b3/cdrwtool/options.c.staticanal udftools-1.0.0b3/cdrwtool/options.c
--- udftools-1.0.0b3/cdrwtool/options.c.staticanal 2012-01-26 16:26:11.288212023 +0100
+++ udftools-1.0.0b3/cdrwtool/options.c 2012-01-26 16:27:24.125207040 +0100
@@ -135,7 +135,8 @@ void parse_args(int argc, char *argv[],
}
case 'd':
{
- strcpy(device, optarg);
+ strncpy(device, optarg, NAME_MAX-1);
+ device[NAME_MAX-1] = '\0';
printf("using device %s\n", device);
break;
}
==========================================================================
Error: NEGATIVE_RETURNS:
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:161: negative_return_fn: Function "open64(filename, 66, 432)" returns a negative number.
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:161: var_assign: Assigning: signed variable "fd" = "open64".
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:165: negative_returns: "fd" is passed to a parameter that cannot be negative.
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:85: neg_sink_parm_call: Passing "fd" to "valid_offset", which cannot accept a negative.
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:55: neg_sink_parm_call: Passing "fd" to "udf_lseek64", which cannot accept a negative.
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:43: neg_sink_parm_call: Passing "fd" to "lseek64", which cannot accept a negative.
diff -up udftools-1.0.0b3/mkudffs/main.c.staticanal udftools-1.0.0b3/mkudffs/main.c
--- udftools-1.0.0b3/mkudffs/main.c.staticanal 2004-02-23 04:33:11.000000000 +0100
+++ udftools-1.0.0b3/mkudffs/main.c 2012-01-26 16:29:17.605199282 +0100
@@ -162,6 +162,10 @@ int main(int argc, char *argv[])
#else
fd = open(filename, O_RDWR | O_CREAT | O_LARGEFILE, 0660);
#endif
+ if (fd == NULL) {
+ fprintf(stderr, "mkudffs: cannot open '%s' for writing\n", filename);
+ exit(1);
+ }
disc.head->blocks = get_blocks(fd, disc.blocksize, disc.head->blocks);
disc.write = write_func;
disc.write_data = &fd;
==========================================================================
Error: BAD_SIZEOF:
/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/mkudffs.c:45: bad_sizeof: Taking the size of pointer parameter "disc" is suspicious.
Possible buffer overflow of static allocated variable "device".
diff -up udftools-1.0.0b3/mkudffs/mkudffs.c.staticanal udftools-1.0.0b3/mkudffs/mkudffs.c
--- udftools-1.0.0b3/mkudffs/mkudffs.c.staticanal 2012-01-26 16:20:44.526234367 +0100
+++ udftools-1.0.0b3/mkudffs/mkudffs.c 2012-01-26 16:20:44.539234366 +0100
@@ -42,7 +42,7 @@ void udf_init_disc(struct udf_disc *disc
struct tm *tm;
int altzone;
- memset(disc, 0x00, sizeof(disc));
+ memset(disc, 0x00, sizeof(*disc));
disc->blocksize = 2048;
disc->blocksize_bits = 11;
diff -up udftools-1.0.0b3/mkudffs/options.c.staticanal udftools-1.0.0b3/mkudffs/options.c
--- udftools-1.0.0b3/mkudffs/options.c.staticanal 2012-01-26 16:24:14.082220036 +0100
+++ udftools-1.0.0b3/mkudffs/options.c 2012-01-26 16:27:29.086206703 +0100
@@ -320,7 +320,8 @@ void parse_args(int argc, char *argv[],
}
if (optind == argc)
usage();
- strcpy(device, argv[optind]);
+ strncpy(device, argv[optind], NAME_MAX-1);
+ device[NAME_MAX-1] = '\0';
optind ++;
if (optind < argc)
disc->head->blocks = strtoul(argv[optind++], NULL, 0);
==========================================================================
Error: OVERRUN_STATIC:
/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:378: overrun-local: Overrunning static array "spm->locSparingTable", with 4 elements, at position 4 with index variable "i".
Error: NEGATIVE_RETURNS:
/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:769: negative_return_fn: Function "open(filename, 2)" returns a negative number.
/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:769: var_assign: Assigning: signed variable "device" = "open".
/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:773: negative_returns: "device" is passed to a parameter that cannot be negative.
diff -up udftools-1.0.0b3/wrudf/wrudf-cdrw.c.staticanal udftools-1.0.0b3/wrudf/wrudf-cdrw.c
--- udftools-1.0.0b3/wrudf/wrudf-cdrw.c.staticanal 2012-01-26 16:20:44.529234367 +0100
+++ udftools-1.0.0b3/wrudf/wrudf-cdrw.c 2012-01-26 16:35:29.729173836 +0100
@@ -374,7 +374,7 @@ void updateSparingTable() {
struct packetbuf *pb;
struct sparablePartitionMap *spm = (struct sparablePartitionMap*)lvd->partitionMaps;
- for( i = 0; i <= 4; i++ ) {
+ for( i = 0; i < sizeof(spm->locSparingTable); i++ ) {
pbn = spm->locSparingTable[i];
if( pbn == 0 )
return;
@@ -682,6 +682,8 @@ readExtents(char* dest, int usesShort, v
dest += 2048;
if( len < 2048 )
break;
+ /* dead code, len couldn't be 0 at this point
+ (break was called in this case) */
if( len == 0 ) {
if( usesShort ) {
sh++;
@@ -766,8 +768,10 @@ initIO(char *filename)
if( S_ISREG(filestat.st_mode) ) { /* disk image of a UDF volume */
devicetype = DISK_IMAGE;
- if( !(device = open(filename, O_RDWR)) )
+ if( !(device = open(filename, O_RDWR)) ) {
fail("initIO: open %s failed\n", filename);
+ return 0;
+ }
/* heuristically determine medium imitated on disk image based on VAT FileEntry in block 512 */
rv = lseek(device, 2048 * 512, SEEK_SET);
==========================================================================
Error: CONSTANT_EXPRESSION_RESULT:
/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cmnd.c:699: missing_parentheses: !(*fid)->fileCharacteristics & 2 is always 0 regardless of the values of its operands. This occurs as the logical operand of if. Did you intend to apply '&' to (*fid)->fileCharacteristics and 2? If so, parentheses would be required to force this interpretation.
diff -up udftools-1.0.0b3/wrudf/wrudf-cmnd.c.staticanal udftools-1.0.0b3/wrudf/wrudf-cmnd.c
--- udftools-1.0.0b3/wrudf/wrudf-cmnd.c.staticanal 2012-01-26 16:20:44.530234366 +0100
+++ udftools-1.0.0b3/wrudf/wrudf-cmnd.c 2012-01-26 16:20:44.543234366 +0100
@@ -696,7 +696,7 @@ analyzeDest(char* arg, struct fileIdentD
*fid = findFileIdentDesc(curDir, comp);
if( *fid == NULL )
return DIR_INVALID;
- if( ! (*fid)->fileCharacteristics & FID_FILE_CHAR_DIRECTORY )
+ if( ! ((*fid)->fileCharacteristics & FID_FILE_CHAR_DIRECTORY ))
return DIR_INVALID;
if( (*fid)->fileCharacteristics & FID_FILE_CHAR_DELETED )
return DIR_INVALID;
diff -up udftools-1.0.0b3/wrudf/wrudf.c.staticanal udftools-1.0.0b3/wrudf/wrudf.c
--- udftools-1.0.0b3/wrudf/wrudf.c.staticanal 2012-01-26 16:20:44.528234367 +0100
+++ udftools-1.0.0b3/wrudf/wrudf.c 2012-01-26 16:20:44.545234365 +0100
@@ -158,6 +158,7 @@ initialise(char *devicename)
if( (p = readTaggedBlock(blkno, ABSOLUTE)) == NULL ) {
if( !inMainSeq )
+ /* dead code - the condition "inMainSeq" cannot be false */
fail("Volume Descriptor Sequences read failure\n");
blkno = extentRsrvVolDescSeq.extLocation;
len = extentRsrvVolDescSeq.extLength;

View File

@ -1,90 +0,0 @@
diff -Naupr udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h udftools-1.0.0b3/cdrwtool/cdrwtool.h
--- udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h 2002-11-26 08:18:50.000000000 +0100
+++ udftools-1.0.0b3/cdrwtool/cdrwtool.h 2006-07-27 14:16:06.000000000 +0200
@@ -226,6 +226,7 @@ int read_disc_info(int, disc_info_t *);
int read_track_info(int, track_info_t *, int);
int reserve_track(int, struct cdrw_disc *);
int close_track(int, unsigned int);
+int close_session(int, unsigned int);
int read_buffer_cap(int, struct cdrw_disc *);
int set_cd_speed(int, int);
void cdrom_close(int);
@@ -236,5 +237,6 @@ int print_disc_track_info(int);
void make_write_page(write_params_t *, struct cdrw_disc *);
void print_params(write_params_t *);
void cdrw_init_disc(struct cdrw_disc *);
+int udf_set_version(struct udf_disc *, int);
#endif /* _CDRWTOOL_H */
diff -Naupr udftools-1.0.0b3.orig/include/udf_endian.h udftools-1.0.0b3/include/udf_endian.h
--- udftools-1.0.0b3.orig/include/udf_endian.h 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3/include/udf_endian.h 2006-07-27 14:09:30.000000000 +0200
@@ -23,6 +23,8 @@
#ifndef __UDF_ENDIAN_H
#define __UDF_ENDIAN_H
+#include <string.h>
+
#include "bswap.h"
static inline lb_addr lelb_to_cpu(lb_addr in)
diff -Naupr udftools-1.0.0b3.orig/libudffs/unicode.c udftools-1.0.0b3/libudffs/unicode.c
--- udftools-1.0.0b3.orig/libudffs/unicode.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3/libudffs/unicode.c 2006-07-27 14:11:17.000000000 +0200
@@ -169,8 +169,6 @@ error_out:
int decode_string(struct udf_disc *disc, char *in, char *out, int inlen)
{
- int i;
-
if (disc->flags & FLAG_UTF8)
return decode_utf8(in, out, inlen);
else if (disc->flags & (FLAG_UNICODE8 | FLAG_UNICODE16))
diff -Naupr udftools-1.0.0b3.orig/pktsetup/pktsetup.c udftools-1.0.0b3/pktsetup/pktsetup.c
--- udftools-1.0.0b3.orig/pktsetup/pktsetup.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3/pktsetup/pktsetup.c 2006-07-27 14:18:24.000000000 +0200
@@ -23,6 +23,7 @@
#include <getopt.h>
#include <bits/types.h>
#include <sys/types.h>
+#include <string.h>
#include <linux/cdrom.h>
diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.am udftools-1.0.0b3/wrudf/Makefile.am
--- udftools-1.0.0b3.orig/wrudf/Makefile.am 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3/wrudf/Makefile.am 2006-07-27 14:21:24.000000000 +0200
@@ -1,5 +1,5 @@
bin_PROGRAMS = wrudf
wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses
-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h
+wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h
AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG
diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.in udftools-1.0.0b3/wrudf/Makefile.in
--- udftools-1.0.0b3.orig/wrudf/Makefile.in 2004-02-23 10:33:48.000000000 +0100
+++ udftools-1.0.0b3/wrudf/Makefile.in 2006-07-27 14:21:44.000000000 +0200
@@ -85,7 +85,7 @@ am__quote = @am__quote@
install_sh = @install_sh@
bin_PROGRAMS = wrudf
wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses
-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h
+wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h
AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG
subdir = wrudf
diff -Naupr udftools-1.0.0b3.orig/wrudf/wrudf.h udftools-1.0.0b3/wrudf/wrudf.h
--- udftools-1.0.0b3.orig/wrudf/wrudf.h 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3/wrudf/wrudf.h 2006-07-27 14:22:33.000000000 +0200
@@ -23,9 +23,11 @@
#include <sys/time.h>
#include <time.h>
#include <stdint.h>
+#include <string.h>
#include "ecma_167.h"
#include "osta_udf.h"
+#include "libudffs.h"
struct generic_desc
{

View File

@ -1,218 +0,0 @@
Nur in udftools-1.0.0b3-new/cdrwtool: cdrwtool.
Nur in udftools-1.0.0b3-new/cdrwtool: cdrwtool.o.
Nur in udftools-1.0.0b3-new/cdrwtool: defaults.o.
Nur in udftools-1.0.0b3-new/cdrwtool: .deps.
Nur in udftools-1.0.0b3-new/cdrwtool: .libs.
Nur in udftools-1.0.0b3-new/cdrwtool: main.o.
Nur in udftools-1.0.0b3-new/cdrwtool: Makefile.
Nur in udftools-1.0.0b3-new/cdrwtool: mkudffs.o.
Nur in udftools-1.0.0b3-new/cdrwtool: options.o.
Nur in udftools-1.0.0b3-new: config.log.
Nur in udftools-1.0.0b3-new: config.status.
Nur in udftools-1.0.0b3-new: debugfiles.list.
Nur in udftools-1.0.0b3-new: debuglinks.list.
Nur in udftools-1.0.0b3-new: debugsources.list.
Nur in udftools-1.0.0b3-new/doc: Makefile.
Nur in udftools-1.0.0b3-new/include: config.h.
Nur in udftools-1.0.0b3-new/include: stamp-h1.
Nur in udftools-1.0.0b3-new: libtool.
Nur in udftools-1.0.0b3-new/libudffs: crc.lo.
Nur in udftools-1.0.0b3-new/libudffs: crc.o.
Nur in udftools-1.0.0b3-new/libudffs: .deps.
Nur in udftools-1.0.0b3-new/libudffs: desc.lo.
Nur in udftools-1.0.0b3-new/libudffs: desc.o.
Nur in udftools-1.0.0b3-new/libudffs: extent.lo.
Nur in udftools-1.0.0b3-new/libudffs: extent.o.
diff -ur udftools-1.0.0b3/libudffs/file.c udftools-1.0.0b3-new/libudffs/file.c
--- udftools-1.0.0b3/libudffs/file.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3-new/libudffs/file.c 2007-08-23 14:02:07.000000000 +0200
@@ -576,7 +576,7 @@
tmp = leBPL_to_cpup(p);
found_first:
tmp |= (~0UL << size);
- if (tmp == ~0UL) /* Are any bits zero? */
+ if (tmp == (uintBPL)~0UL) /* Are any bits zero? */
return result + size; /* Nope. */
found_middle:
return result + ffz(tmp);
Nur in udftools-1.0.0b3-new/libudffs: file.lo.
Nur in udftools-1.0.0b3-new/libudffs: file.o.
Nur in udftools-1.0.0b3-new/libudffs: .libs.
Nur in udftools-1.0.0b3-new/libudffs: libudffs.la.
Nur in udftools-1.0.0b3-new/libudffs: Makefile.
Nur in udftools-1.0.0b3-new/libudffs: unicode.lo.
Nur in udftools-1.0.0b3-new/libudffs: unicode.o.
Nur in udftools-1.0.0b3-new: Makefile.
Nur in udftools-1.0.0b3-new/mkudffs: defaults.o.
Nur in udftools-1.0.0b3-new/mkudffs: .deps.
Nur in udftools-1.0.0b3-new/mkudffs: .libs.
Nur in udftools-1.0.0b3-new/mkudffs: main.o.
Nur in udftools-1.0.0b3-new/mkudffs: Makefile.
Nur in udftools-1.0.0b3-new/mkudffs: mkudffs.
diff -ur udftools-1.0.0b3/mkudffs/mkudffs.c udftools-1.0.0b3-new/mkudffs/mkudffs.c
--- udftools-1.0.0b3/mkudffs/mkudffs.c 2007-08-23 14:32:38.000000000 +0200
+++ udftools-1.0.0b3-new/mkudffs/mkudffs.c 2007-08-23 14:14:42.000000000 +0200
@@ -72,7 +72,7 @@
disc->udf_pvd[0] = malloc(sizeof(struct primaryVolDesc));
memcpy(disc->udf_pvd[0], &default_pvd, sizeof(struct primaryVolDesc));
memcpy(&disc->udf_pvd[0]->recordingDateAndTime, &ts, sizeof(timestamp));
- sprintf(&disc->udf_pvd[0]->volSetIdent[1], "%08lx%s",
+ sprintf((char *)&disc->udf_pvd[0]->volSetIdent[1], "%08lx%s",
mktime(tm), &disc->udf_pvd[0]->volSetIdent[9]);
disc->udf_pvd[0]->volIdent[31] = strlen(disc->udf_pvd[0]->volIdent);
disc->udf_pvd[0]->volSetIdent[127] = strlen(disc->udf_pvd[0]->volSetIdent);
@@ -289,7 +289,7 @@
int write_disc(struct udf_disc *disc)
{
struct udf_extent *start_ext;
- int ret;
+ int ret=0;
start_ext = disc->head;
@@ -299,6 +299,7 @@
return ret;
start_ext = start_ext->next;
}
+ return ret;
}
void setup_vrs(struct udf_disc *disc)
@@ -450,7 +451,7 @@
struct unallocSpaceEntry *use;
short_ad *sad;
int max = (0x3FFFFFFF / disc->blocksize) * disc->blocksize;
- int pos;
+ int pos=0;
long long rem;
if (disc->flags & FLAG_STRATEGY4096)
Nur in udftools-1.0.0b3-new/mkudffs: mkudffs.o.
Nur in udftools-1.0.0b3-new/mkudffs: options.o.
Nur in udftools-1.0.0b3-new/pktsetup: .deps.
Nur in udftools-1.0.0b3-new/pktsetup: .libs.
Nur in udftools-1.0.0b3-new/pktsetup: Makefile.
Nur in udftools-1.0.0b3-new/pktsetup: pktsetup.
Nur in udftools-1.0.0b3-new/pktsetup: pktsetup.o.
Nur in udftools-1.0.0b3-new/udfct: Makefile.
Nur in udftools-1.0.0b3-new/udffsck: .deps.
Nur in udftools-1.0.0b3-new/udffsck: .libs.
Nur in udftools-1.0.0b3-new/udffsck: main.o.
Nur in udftools-1.0.0b3-new/udffsck: Makefile.
Nur in udftools-1.0.0b3-new/udffsck: udffsck.
Nur in udftools-1.0.0b3-new/wrudf: .deps.
diff -ur udftools-1.0.0b3/wrudf/ide-pc.c udftools-1.0.0b3-new/wrudf/ide-pc.c
--- udftools-1.0.0b3/wrudf/ide-pc.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3-new/wrudf/ide-pc.c 2007-08-23 14:32:09.000000000 +0200
@@ -31,6 +31,7 @@
#include <sys/types.h> /* for u_char etc. */
#include <linux/cdrom.h>
#include <unistd.h> /* sleep() */
+#include <stdlib.h>
#include "bswap.h"
#include "ide-pc.h"
Nur in udftools-1.0.0b3-new/wrudf: ide-pc.o.
Nur in udftools-1.0.0b3-new/wrudf: .libs.
Nur in udftools-1.0.0b3-new/wrudf: Makefile.
Nur in udftools-1.0.0b3-new/wrudf: wrudf.
diff -ur udftools-1.0.0b3/wrudf/wrudf.c udftools-1.0.0b3-new/wrudf/wrudf.c
--- udftools-1.0.0b3/wrudf/wrudf.c 2007-08-23 14:32:38.000000000 +0200
+++ udftools-1.0.0b3-new/wrudf/wrudf.c 2007-08-23 14:26:41.000000000 +0200
@@ -245,7 +245,7 @@
} else if( strncmp( spm->partIdent.ident, UDF_ID_VIRTUAL, strlen(UDF_ID_VIRTUAL)) == 0 )
virtualPartitionNum = i;
}
- spm = (char*)spm + spm->partitionMapLength;
+ spm = (struct sparablePartitionMap*)((char*)spm + spm->partitionMapLength);
}
if( medium == CDR ) {
@@ -300,7 +300,7 @@
fail("SpaceBitmap not found\n");
}
- if (fsdLen = decode_utf8(fsd->fileSetIdent, fsdOut, fsd->fileSetIdent[31]))
+ if ((fsdLen = decode_utf8(fsd->fileSetIdent, fsdOut, fsd->fileSetIdent[31]))>=0)
fsdOut[fsdLen] = '\0';
printf("You are going to update fileset '%s'\nProceed (y/N) : ", &fsdOut[1]);
@@ -605,7 +605,7 @@
int
main(int argc, char** argv)
{
- int rv;
+ int rv=0;
int cmnd;
char prompt[256];
Directory *d;
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cdr.o.
diff -ur udftools-1.0.0b3/wrudf/wrudf-cdrw.c udftools-1.0.0b3-new/wrudf/wrudf-cdrw.c
--- udftools-1.0.0b3/wrudf/wrudf-cdrw.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3-new/wrudf/wrudf-cdrw.c 2007-08-23 14:30:14.000000000 +0200
@@ -614,7 +614,6 @@
readTaggedBlock(uint32_t lbn, uint16_t partition)
{
int i;
- uint32_t blkno;
uint8_t sum, *p;
struct generic_desc *block;
@@ -634,7 +633,7 @@
if( strncmp(((struct sparingTable*)block)->sparingIdent.ident, UDF_ID_SPARING, strlen(UDF_ID_SPARING)) != 0 ) {
for( i = 0; i < 2048; i++ ) {
if( ((uint8_t*)block)[i] != 0 ) {
- printf("readTaggedBlock: Empty block %d not all zeroes\n", blkno);
+ printf("readTaggedBlock: Empty block %d not all zeroes\n", lbn);
break;
}
}
@@ -647,10 +646,10 @@
sum += *(p + i);
if( block->descTag.tagChecksum != sum )
- fail("readTagged: Checksum error in block %d\n", blkno);
+ fail("readTagged: Checksum error in block %d\n", lbn);
if( block->descTag.descCRC != udf_crc((uint8_t*)block + sizeof(tag), ((tag*)block)->descCRCLength, 0) )
- fail("readTagged: CRC error in block %d\n", blkno);
+ fail("readTagged: CRC error in block %d\n", lbn);
return block;
}
@@ -709,8 +708,8 @@
writeExtents(char* src, int usesShort, void* extents)
{
uint len, blkno, partitionNumber;
- long_ad *lo;
- short_ad *sh;
+ long_ad *lo=NULL;
+ short_ad *sh=NULL;
if( usesShort ) {
sh = (short_ad*) extents;
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cdrw.o.
diff -ur udftools-1.0.0b3/wrudf/wrudf-cmnd.c udftools-1.0.0b3-new/wrudf/wrudf-cmnd.c
--- udftools-1.0.0b3/wrudf/wrudf-cmnd.c 2002-11-26 08:18:51.000000000 +0100
+++ udftools-1.0.0b3-new/wrudf/wrudf-cmnd.c 2007-08-23 14:22:41.000000000 +0200
@@ -45,7 +45,7 @@
int
copyFile(Directory *dir, char* inName, char*newName, struct stat *fileStat)
{
- int fd, i, blkno;
+ int fd, i=0, blkno;
uint32_t nBytes, blkInPkt;
uint32_t maxVarPktSize; // in bytes
struct fileIdentDesc *fid;
@@ -54,7 +54,7 @@
fd = open(inName, O_RDONLY);
if( fd == 0 ) {
- printf("'%s' does not exist\n", cmndv[i]);
+ printf("'%s' does not exist\n", inName);
return CMND_FAILED;
}
Nur in udftools-1.0.0b3-new/wrudf: wrudf-cmnd.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf-desc.o.
Nur in udftools-1.0.0b3-new/wrudf: wrudf.o.

View File

@ -1,53 +0,0 @@
Subject: Bug#288621: udftools: FTBFS (amd64/gcc-4.0): invalid lvalue in assignment
From: Andreas Jochens <aj@andaco.de>
Message-Id: <E1CltQT-00068G-Sy@localhost.localdomain>
Date: Tue, 04 Jan 2005 19:29:01 +0100
Lines: 59
Package: udftools
Severity: normal
Tags: patch
When building 'udftools' on amd64 with gcc-4.0,
I get the following error:
wrudf.c:119: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:119: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:119: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness
wrudf.c:119: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:230: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness
wrudf.c:230: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
wrudf.c:245: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness
wrudf.c:245: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
wrudf.c:248: error: invalid lvalue in assignment
make[2]: *** [wrudf.o] Error 1
make[2]: Leaving directory `/udftools-1.0.0b3/wrudf'
With the attached patch 'udftools' can be compiled
on amd64 using gcc-4.0.
The patch also changes the Build-Depends from 'libreadline4-dev'
to 'libreadline5-dev'.
Regards
Andreas Jochens
diff -urN ../tmp-orig/udftools-1.0.0b3/wrudf/wrudf.c ./wrudf/wrudf.c
--- ../tmp-orig/udftools-1.0.0b3/wrudf/wrudf.c 2002-11-26 08:18:51.000000000 +0100
+++ ./wrudf/wrudf.c 2005-01-04 16:56:49.394078200 +0100
@@ -245,7 +245,7 @@
} else if( strncmp( spm->partIdent.ident, UDF_ID_VIRTUAL, strlen(UDF_ID_VIRTUAL)) == 0 )
virtualPartitionNum = i;
}
- (char*)spm += spm->partitionMapLength;
+ spm = (char*)spm + spm->partitionMapLength;
}
if( medium == CDR ) {
diff -urN ../tmp-orig/udftools-1.0.0b3/debian/control ./debian/control

View File

@ -1,48 +0,0 @@
diff -up wrk/wrudf/wrudf.c.wrk wrk/wrudf/wrudf.c
--- wrk/wrudf/wrudf.c.wrk 2013-04-15 15:32:03.395528452 +0200
+++ wrk/wrudf/wrudf.c 2013-04-15 16:06:37.535546730 +0200
@@ -603,6 +603,28 @@ parseCmnd(char* line)
return cmnd;
}
+int show_help()
+{
+ char *msg =
+ "Interactive tool to maintain an UDF filesystem.\n"
+ "Usage:\n"
+ "\twrudf [device]\n"
+ "Available commands:\n"
+ "\tcp\n"
+ "\trm\n"
+ "\tmkdir\n"
+ "\trmdir\n"
+ "\tlsc\n"
+ "\tlsh\n"
+ "\tcdc\n"
+ "\tcdh\n"
+ "Specify cdh/lsh or cdc/lsc to do cd or ls for Harddisk or CompactDisc.\n"
+ "\tquit\n"
+ "\texit\n";
+ printf("%s", msg);
+ return 0;
+}
+
int
main(int argc, char** argv)
{
@@ -614,8 +636,14 @@ main(int argc, char** argv)
printf("wrudf " WRUDF_VERSION "\n");
devicename= "/dev/cdrom";
- if(argc > 1 )
+ if(argc > 1 ) {
+ if (strcmp(argv[1], "-h")==0 || strcmp(argv[1], "-help")==0 || strcmp(argv[1], "--help")==0) {
+ return show_help();
+ }
+ }
+ else {
devicename = argv[1]; /* can specify disk image filename */
+ }
if( setpriority(PRIO_PROCESS, 0, -10) ) {
printf("setpriority(): %m\n");

View File

@ -1,24 +1,14 @@
Summary: Linux UDF Filesystem userspace utilities
Name: udftools
Version: 1.0.0b3
Release: 31%{?dist}
Version: 1.2
Release: 1%{?dist}
License: GPLv2+
Group: Applications/Archiving
URL: http://sourceforge.net/projects/linux-udf/
#Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
#new upstream emerging at https://github.com/pali/udftools
Source: https://sourceforge.net/projects/linux-udf/files/%{name}/%{version}/%{name}-%{version}.tar.gz
Source: https://github.com/pali/udftools/releases/tag/%{version}/udftools-%{version}.tar.gz
#old versions at Source: https://sourceforge.net/projects/linux-udf/files/%{name}/%{version}/%{name}-%{version}.tar.gz
Source2: wrudf.1
Patch0: udftools-1.0.0b3-pktsetup-chardev.patch
Patch1: udftools-1.0.0b3-mkudffs-bigendian.patch
Patch2: udftools-1.0.0b3-wrudf-gcc4.patch
Patch3: udftools-1.0.0b3-warningfixes.patch
Patch4: udftools-1.0.0b3-fixcompile.patch
Patch5: udftools-1.0.0b3-warningfixes2.patch
Patch6: udftools-1.0.0b3-extsize.patch
Patch7: udftools-1.0.0b3-staticanal.patch
Patch8: udftools-1.0.0b3-wrudf_help.patch
Patch9: udftools-1.0.0b3-man-missing-options.patch
BuildRequires: readline-devel, ncurses-devel
BuildRequires: autoconf, automake, libtool, perl-Carp
@ -28,42 +18,32 @@ Linux UDF Filesystem userspace utilities.
%prep
%setup
%patch0 -p1 -b .pktsetup-chardev
%patch1 -p1 -b .mkudffs-bigendian
%patch2 -p1 -b .wrudf-gcc4
%patch3 -p1 -b .warningfixes
%patch4 -p1 -b .fixcompile
%patch5 -p1 -b .warningfixes2
%patch6 -p1 -b .extsize
%patch7 -p1 -b .staticanal
%patch8 -p1 -b .wrudfhelp
%patch9 -p1 -b .man
%build
./bootstrap
#./bootstrap #not in the tarball anymore, lets use pregenerated autotools
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing --std=gnu89"
%configure
%{__make} %{?_smp_mflags}
%install
%makeinstall
./libtool --finish %{buildroot}%{_libdir}
%make_install
#./libtool --finish %{buildroot}%{_libdir} #causes failure and is probably unneeded, we dont ship a library
install -m 644 %{SOURCE2} %buildroot%{_mandir}/man1/
ls %{buildroot}
rm -rf %{buildroot}%{_bindir}/udffsck
%files
%doc AUTHORS ChangeLog COPYING
%{_bindir}/*
#udffsck does nothing (in version 1.0.0b3), do not package
%exclude %{_bindir}/udffsck
%exclude %{_libdir}/libudffs.a
%exclude %{_libdir}/libudffs.la
%{_sbindir}/*
%{_pkgdocdir}/*
%{_mandir}/man?/*
%changelog
* Wed Jul 13 2016 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.2-1
- Rebase from a new upstream, dropped patches
- Several binaries moved from bin to sbin
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0b3-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild