Compare commits

..

No commits in common. "rawhide" and "f19" have entirely different histories.

14 changed files with 1730 additions and 502 deletions

5
.gitignore vendored
View file

@ -1,6 +1 @@
udftools-1.0.0b3.tar.gz
/udftools-1.2.tar.gz
/udftools-1.3.tar.gz
/udftools-2.1.tar.gz
/udftools-2.2.tar.gz
/udftools-2.3.tar.gz

View file

@ -1 +1 @@
SHA512 (udftools-2.3.tar.gz) = 17304264388ae53e348d6aa870f0d23c29477344fee848236b46886c086221941872073974f804c0735eafd0cf9f7acdac7988132f03c0a87dba37467b5bda95
2f491ddd63f31040797236fe18db9e60 udftools-1.0.0b3.tar.gz

View file

@ -0,0 +1,40 @@
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

@ -0,0 +1,546 @@
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

@ -0,0 +1,131 @@
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

@ -0,0 +1,346 @@
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

@ -0,0 +1,160 @@
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

@ -0,0 +1,90 @@
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

@ -0,0 +1,218 @@
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

@ -0,0 +1,53 @@
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

@ -0,0 +1,48 @@
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,357 +0,0 @@
From 5905cc991fa466239fba4b6cd7f9f3bda5a87641 Mon Sep 17 00:00:00 2001
From: Zhang Sheng <zhangsheng@uniontech.com>
Date: Wed, 24 Mar 2021 13:50:05 +0800
Subject: [PATCH] libudffs: Fix misspelling
---
libudffs/extent.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libudffs/extent.c b/libudffs/extent.c
index 827d2b7..382962e 100644
--- a/libudffs/extent.c
+++ b/libudffs/extent.c
@@ -449,7 +449,7 @@ struct udf_desc *find_desc(struct udf_extent *ext, uint32_t offset)
/**
* @brief allocate a new udf_descriptor having a udf_data item and insert it
* into the udf_descriptor list of a udf_extent ordered by block number
- * @oaram ext the udf_extent containing the udf_descriptor list head
+ * @param ext the udf_extent containing the udf_descriptor list head
* @param ident the tag ident of the new udf_descriptor
* @param offset the first block the new descriptor describes
* @param length the length of the udf_data item payload in bytes
From 0d92ec4627e9921c4d8fa6f9db2ec584d5c8e3ad Mon Sep 17 00:00:00 2001
From: Zhang Sheng <zhangsheng@uniontech.com>
Date: Thu, 1 Apr 2021 21:15:16 +0800
Subject: [PATCH] wrudf: Fix incorrect return value checking for `lseek`
---
wrudf/wrudf-cdrw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wrudf/wrudf-cdrw.c b/wrudf/wrudf-cdrw.c
index 7e4391e..569c578 100644
--- a/wrudf/wrudf-cdrw.c
+++ b/wrudf/wrudf-cdrw.c
@@ -583,7 +583,7 @@ readSingleBlock(uint32_t pbn)
return blockBuffer;
} else {
off = lseek(device, 2048 * pbn, SEEK_SET);
- if( off != (off_t)-1 )
+ if( off == (off_t)-1 )
return NULL;
len = read(device, blockBuffer, 2048);
if( len != 2048 )
From 6063117955e96f2acd4425dade79fa1428a6cced Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
Date: Tue, 20 Apr 2021 00:13:03 +0200
Subject: [PATCH] bswap: Fix typo
---
include/bswap.h | 96 ++++++++++++++++++++++++-------------------------
1 file changed, 48 insertions(+), 48 deletions(-)
diff --git a/include/bswap.h b/include/bswap.h
index 8cfc7ff..e436903 100644
--- a/include/bswap.h
+++ b/include/bswap.h
@@ -28,17 +28,17 @@
#include <stdint.h>
#include <sys/types.h>
-#define constant_swab16(x) \
+#define constant_swap16(x) \
((uint16_t)((((uint16_t)(x) & 0x00FFU) << 8) | \
(((uint16_t)(x) & 0xFF00U) >> 8)))
-#define constant_swab32(x) \
+#define constant_swap32(x) \
((uint32_t)((((uint32_t)(x) & 0x000000FFU) << 24) | \
(((uint32_t)(x) & 0x0000FF00U) << 8) | \
(((uint32_t)(x) & 0x00FF0000U) >> 8) | \
(((uint32_t)(x) & 0xFF000000U) >> 24)))
-#define constant_swab64(x) \
+#define constant_swap64(x) \
((uint64_t)((((uint64_t)(x) & 0x00000000000000FFULL) << 56) | \
(((uint64_t)(x) & 0x000000000000FF00ULL) << 40) | \
(((uint64_t)(x) & 0x0000000000FF0000ULL) << 24) | \
@@ -48,13 +48,13 @@
(((uint64_t)(x) & 0x00FF000000000000ULL) >> 40) | \
(((uint64_t)(x) & 0xFF00000000000000ULL) >> 56)))
-static inline uint16_t swab16(uint16_t x)
+static inline uint16_t swap16(uint16_t x)
{
return ((uint16_t)((((uint16_t)(x) & 0x00FFU) << 8) | \
(((uint16_t)(x) & 0xFF00U) >> 8)));
}
-static inline uint32_t swab32(uint32_t x)
+static inline uint32_t swap32(uint32_t x)
{
return ((uint32_t)((((uint32_t)(x) & 0x000000FFU) << 24) | \
(((uint32_t)(x) & 0x0000FF00U) << 8) | \
@@ -62,7 +62,7 @@ static inline uint32_t swab32(uint32_t x)
(((uint32_t)(x) & 0xFF000000U) >> 24)));
}
-static inline uint64_t swab64(uint64_t x)
+static inline uint64_t swap64(uint64_t x)
{
return ((uint64_t)((((uint64_t)(x) & 0x00000000000000FFULL) << 56) | \
(((uint64_t)(x) & 0x000000000000FF00ULL) << 40) | \
@@ -74,17 +74,17 @@ static inline uint64_t swab64(uint64_t x)
(((uint64_t)(x) & 0xFF00000000000000ULL) >> 56)));
}
-#define constant_swab16p(x) \
+#define constant_swap16p(x) \
((uint16_t)(((*(uint16_t *)(x) & 0x00FFU) << 8) | \
((*(uint16_t *)(x) & 0xFF00U) >> 8)))
-#define constant_swab32p(x) \
+#define constant_swap32p(x) \
((uint32_t)(((*(uint32_t *)(x) & 0x000000FFU) << 24) | \
((*(uint32_t *)(x) & 0x0000FF00U) << 8) | \
((*(uint32_t *)(x) & 0x00FF0000U) >> 8) | \
((*(uint32_t *)(x) & 0xFF000000U) >> 24)))
-#define constant_swab64p(x) \
+#define constant_swap64p(x) \
((uint64_t)(((*(uint64_t *)(x) & 0x00000000000000FFULL) << 56) | \
((*(uint64_t *)(x) & 0x000000000000FF00ULL) << 40) | \
((*(uint64_t *)(x) & 0x0000000000FF0000ULL) << 24) | \
@@ -95,13 +95,13 @@ static inline uint64_t swab64(uint64_t x)
((*(uint64_t *)(x) & 0xFF00000000000000ULL) >> 56)))
-static inline uint16_t swab16p(uint16_t *x)
+static inline uint16_t swap16p(uint16_t *x)
{
return ((uint16_t)(((*(uint16_t *)(x) & 0x00FFU) << 8) | \
((*(uint16_t *)(x) & 0xFF00U) >> 8)));
}
-static inline uint32_t swab32p(uint32_t *x)
+static inline uint32_t swap32p(uint32_t *x)
{
return ((uint32_t)(((*(uint32_t *)(x) & 0x000000FFU) << 24) | \
((*(uint32_t *)(x) & 0x0000FF00U) << 8) | \
@@ -109,7 +109,7 @@ static inline uint32_t swab32p(uint32_t *x)
((*(uint32_t *)(x) & 0xFF000000U) >> 24)));
}
-static inline uint64_t swab64p(uint64_t *x)
+static inline uint64_t swap64p(uint64_t *x)
{
return ((uint64_t)(((*(uint64_t *)(x) & 0x00000000000000FFULL) << 56) | \
((*(uint64_t *)(x) & 0x000000000000FF00ULL) << 40) | \
@@ -124,37 +124,37 @@ static inline uint64_t swab64p(uint64_t *x)
#ifdef WORDS_BIGENDIAN
#define le16_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab16(x) : \
- swab16(x))
+ constant_swap16(x) : \
+ swap16(x))
#define le32_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab32(x) : \
- swab32(x))
+ constant_swap32(x) : \
+ swap32(x))
#define le64_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab64(x) : \
- swab64(x))
+ constant_swap64(x) : \
+ swap64(x))
-#define constant_le16_to_cpu(x) constant_swab16((x))
-#define constant_le32_to_cpu(x) constant_swab32((x))
-#define constant_le64_to_cpu(x) constant_swab64((x))
+#define constant_le16_to_cpu(x) constant_swap16((x))
+#define constant_le32_to_cpu(x) constant_swap32((x))
+#define constant_le64_to_cpu(x) constant_swap64((x))
#define le16_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab16p(x) : \
- swab16p(x))
+ constant_swap16p(x) : \
+ swap16p(x))
#define le32_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab32p(x) : \
- swab32p(x))
+ constant_swap32p(x) : \
+ swap32p(x))
#define le64_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab64p(x) : \
- swab64p(x))
+ constant_swap64p(x) : \
+ swap64p(x))
-#define constant_le16_to_cpup(x) constant_swab16p((x))
-#define constant_le32_to_cpup(x) constant_swab32p((x))
-#define constant_le64_to_cpup(x) constant_swab64p((x))
+#define constant_le16_to_cpup(x) constant_swap16p((x))
+#define constant_le32_to_cpup(x) constant_swap32p((x))
+#define constant_le64_to_cpup(x) constant_swap64p((x))
#define be16_to_cpu(x) ((uint16_t)(x))
#define be32_to_cpu(x) ((uint32_t)(x))
@@ -191,37 +191,37 @@ static inline uint64_t swab64p(uint64_t *x)
#define constant_le64_to_cpup(x) (*(uint64_t *)(x))
#define be16_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab16(x) : \
- swab16(x))
+ constant_swap16(x) : \
+ swap16(x))
#define be32_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab32(x) : \
- swab32(x))
+ constant_swap32(x) : \
+ swap32(x))
#define be64_to_cpu(x) (__builtin_constant_p(x) ? \
- constant_swab64(x) : \
- swab64(x))
+ constant_swap64(x) : \
+ swap64(x))
-#define constant_be16_to_cpu(x) constant_swab16((x))
-#define constant_be32_to_cpu(x) constant_swab32((x))
-#define constant_be64_to_cpu(x) constant_swab64((x))
+#define constant_be16_to_cpu(x) constant_swap16((x))
+#define constant_be32_to_cpu(x) constant_swap32((x))
+#define constant_be64_to_cpu(x) constant_swap64((x))
#define be16_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab16p(x) : \
- swab16p(x))
+ constant_swap16p(x) : \
+ swap16p(x))
#define be32_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab32p(x) : \
- swab32p(x))
+ constant_swap32p(x) : \
+ swap32p(x))
#define be64_to_cpup(x) (__builtin_constant_p(x) ? \
- constant_swab64p(x) : \
- swab64p(x))
+ constant_swap64p(x) : \
+ swap64p(x))
-#define constant_be16_to_cpup(x) constant_swab16p((x))
-#define constant_be32_to_cpup(x) constant_swab32p((x))
-#define constant_be64_to_cpup(x) constant_swab64p((x))
+#define constant_be16_to_cpup(x) constant_swap16p((x))
+#define constant_be32_to_cpup(x) constant_swap32p((x))
+#define constant_be64_to_cpup(x) constant_swap64p((x))
#endif /* WORDS_BIGENDIAN */
From 07c5f12de1f9d3582b21d78296b7d05403dca008 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
Date: Tue, 20 Apr 2021 00:13:26 +0200
Subject: [PATCH] mkudffs: Add missing branch for mmc_profile detection
---
mkudffs/options.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/mkudffs/options.c b/mkudffs/options.c
index 58d810a..0b9e4a7 100644
--- a/mkudffs/options.c
+++ b/mkudffs/options.c
@@ -797,6 +797,10 @@ void parse_args(int argc, char *argv[], struct udf_disc *disc, char **device, in
else /* All other disc statuses means that medium is recordable = CD-R */
mmc_profile = 0x09;
}
+ else
+ {
+ mmc_profile = 0x00; /* Unknown optical disc */
+ }
}
else
{
From 7a432b0bcd76cbd6a79925cde213f5d9073df137 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
Date: Sat, 12 Jun 2021 12:09:05 +0200
Subject: [PATCH] wrudf: Fix parsing Volume Descriptor Sequence
Fixes reading Reserve Volume Descriptor Sequence and fixes crashing when
readTaggedBlock() returns NULL.
---
wrudf/wrudf.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/wrudf/wrudf.c b/wrudf/wrudf.c
index 79ca383..7a500c9 100644
--- a/wrudf/wrudf.c
+++ b/wrudf/wrudf.c
@@ -93,6 +93,7 @@ void
initialise(char *devicename)
{
uint32_t i, len, blkno, lastblk, size;
+ int inMainSeq;
long_ad *fsdAd;
short_ad *adSpaceMap;
struct sparablePartitionMap *spm;
@@ -158,17 +159,17 @@ initialise(char *devicename)
/* read Volume Descriptor Sequence */
blkno = extentMainVolDescSeq.extLocation;
len = extentMainVolDescSeq.extLength;
+ inMainSeq = 1;
for( i = 0; i < len; blkno++, i += 2048 ) {
- int inMainSeq = 1;
-
if( (p = readTaggedBlock(blkno, ABSOLUTE)) == NULL ) {
if( !inMainSeq )
fail("Volume Descriptor Sequences read failure\n");
- blkno = extentRsrvVolDescSeq.extLocation;
+ blkno = extentRsrvVolDescSeq.extLocation - 1;
len = extentRsrvVolDescSeq.extLength;
inMainSeq = 0;
- i = 0;
+ i = (uint32_t) -2048;
+ continue;
}
switch( p->descTag.tagIdent ) {
case TAG_IDENT_PVD:
From b08c75d234d69b2d1cf07dc639d432db767a775f Mon Sep 17 00:00:00 2001
From: Jiri Kucera <jkucera@redhat.com>
Date: Sun, 13 Jun 2021 19:37:47 +0200
Subject: [PATCH] wrudf-cdr.c: Exit on allocation failure
---
wrudf/wrudf-cdr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wrudf/wrudf-cdr.c b/wrudf/wrudf-cdr.c
index 538167a..27883da 100644
--- a/wrudf/wrudf-cdr.c
+++ b/wrudf/wrudf-cdr.c
@@ -26,7 +26,7 @@ uint32_t newVATentry() {
sizeVAT += 2048;
vat = realloc(vat, sizeVAT);
if( vat == NULL )
- printf("VAT reallocation failed\n");
+ fail("VAT reallocation failed\n");
}
/* could go through VAT and try to find unused 0xFFFFFFFF entry rather than alloc new one at the end */
vat[newVATindex] = getNWA() - pd->partitionStartingLocation;

View file

@ -1,165 +1,63 @@
Summary: Linux UDF Filesystem userspace utilities
Name: udftools
Version: 2.3
Release: 14%{?dist}
# Automatically converted from old format: GPLv2+ - review is highly recommended.
License: GPL-2.0-or-later
Version: 1.0.0b3
Release: 23%{?dist}
License: GPLv2+
Group: Applications/Archiving
URL: http://sourceforge.net/projects/linux-udf/
Source: https://github.com/pali/udftools/releases/download/%{version}/udftools-%{version}.tar.gz
Patch1: udftools-2.3-backported_fixes.patch
BuildRequires: make
Source: http://downloads.sourceforge.net/%{name}/%{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
BuildRequires: readline-devel, ncurses-devel
BuildRequires: autoconf, automake, libtool, perl-Carp
BuildRequires: udev
Requires: udev
%description
Linux UDF Filesystem userspace utilities.
%prep
%autosetup -p1
%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
%build
#./bootstrap #not in the tarball anymore, lets use pregenerated autotools
##export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing --std=gnu99"
./bootstrap
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%configure
%make_build
##%%{__make} %%{?_smp_mflags}
%{__make} %{?_smp_mflags}
%install
%make_install
#./libtool --finish %%{buildroot}%%{_libdir} #causes failure and is probably unneeded, we dont ship a library
rm -rf %{buildroot}%{_bindir}/udffsck
%makeinstall
./libtool --finish %{buildroot}%{_libdir}
install -m 644 %{SOURCE2} %buildroot%{_mandir}/man1/
%files
%doc AUTHORS NEWS
%license COPYING
%doc AUTHORS ChangeLog COPYING
%{_bindir}/*
%{_sbindir}/*
%{_pkgdocdir}/*
#udffsck does nothing (in version 1.0.0b3), do not package
%exclude %{_bindir}/udffsck
%exclude %{_libdir}/libudffs.a
%exclude %{_libdir}/libudffs.la
%{_mandir}/man?/*
%{_udevrulesdir}/80-pktsetup.rules
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 26 2024 Miroslav Suchý <msuchy@redhat.com> - 2.3-10
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jun 15 2021 Jiri Kucera <jkucera@redhat.com> - 2.3-2
- wrudf: Fix parsing Volume Descriptor Sequence
- wrudf: Exit on allocation failure
* Wed Jun 09 2021 Jiri Kucera <jkucera@redhat.com> - 2.3-1
- Update to 2.3
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Apr 20 2020 Filipe Rosset <rosset.filipe@gmail.com> - 2.2-1
- Update to 2.2
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.1-3
- Rebuild for readline 8.0
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Dec 29 2018 Filipe Rosset <rosset.filipe@gmail.com> - 2.1-1
- new upstream version 2.1 fixes rhbz #1625987 + spec cleanup and modernization
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Jan 24 2017 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.3-1
- rebase to 1.3
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.2-2
- Rebuild for readline 7.x
* 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
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Feb 20 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-29
- FTBFS fixed, --std=gnu89 is no longer default with gcc-5
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed Apr 09 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-26
- added missing option in man pages
* Fri Oct 04 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-25
- invalid source url fixed
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Apr 16 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-23
- Build dependency on txt2man unacceptable. Included final man page wrudf.1 instead of source.

60
wrudf.1 Normal file
View file

@ -0,0 +1,60 @@
.\" Text automatically generated by txt2man
.TH wrudf 1 "16 April 2013" "udftools" "Linux Reference Manual"
.SH NAME
\fBwrudf \fP- Maintain an UDF filesystem.
.SH SYNOPSIS
.nf
.fam C
\fBwrudf\fP \fIdevice\fP
\fBwrudf\fP \fB--help\fP | \fB-help\fP | \fB-h\fP
.fam T
.fi
.fam T
.fi
.SH DESCRIPTION
\fBwrudf\fP provides an interactive shell with operations on existing UDF filesystem: cp, rm, mkdir, rmdir, ls, cd.
.SS COMMANDS
.TP
.B
cp
copy
.TP
.B
rm
remove
.TP
.B
mkdir
make directory
.TP
.B
rmdir
remove directory
.TP
.B
lsc
list files (Compact disc version)
.TP
.B
lsh
list files (Hard disc version)
.TP
.B
cdc
change working directory (Compact disc)
.TP
.B
cdh
change working directory (Hard disc)
.TP
.B
quit
quit \fBwrudf\fP
.TP
.B
exit
quit \fBwrudf\fP
.SH AVAILABILITY
\fBwrudf\fP is part of the udftools package and is available from http://linux-udf.sourceforge.net.
.SH SEE ALSO
\fBcdrwtool\fP(1), \fBmkudffs\fP(8), \fBpktsetup\fP(8)