Index: head/archivers/unarj/Makefile =================================================================== --- head/archivers/unarj/Makefile (revision 408601) +++ head/archivers/unarj/Makefile (revision 408602) @@ -1,28 +1,25 @@ # Created by: ache # $FreeBSD$ PORTNAME= unarj PORTVERSION= 2.65 PORTREVISION= 2 CATEGORIES= archivers MASTER_SITES= https://googledrive.com/host/0BwCT-sp3iBCaeDRPYm1jTjl1Qmc/ MAINTAINER= ak@FreeBSD.org COMMENT= Allows files to be extracted from ARJ archives USES= tar:tgz PLIST_FILES= bin/unarj PORTDOCS= unarj.txt technote.txt OPTIONS_DEFINE= DOCS -post-patch: - ${CP} ${FILESDIR}/sanitize.c ${WRKSRC} - do-install: ${INSTALL_PROGRAM} ${WRKSRC}/unarj ${STAGEDIR}${PREFIX}/bin @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} .include Index: head/archivers/unarj/files/patch-01-path-unarj.c =================================================================== --- head/archivers/unarj/files/patch-01-path-unarj.c (revision 408601) +++ head/archivers/unarj/files/patch-01-path-unarj.c (nonexistent) @@ -1,25 +0,0 @@ ---- unarj-2.65.orig/unarj.c -+++ unarj.c -@@ -235,6 +235,8 @@ static UCRC crctable[UCHAR_MAX + 1]; - - /* Functions */ - -+void copy_path_relative(char *dest, char *src, size_t len); -+ - static void - make_crctable() - { -@@ -738,11 +740,11 @@ extract() - - no_output = 0; - if (command == 'E') -- strncopy(name, &filename[entry_pos], sizeof(name)); -+ copy_path_relative(name, &filename[entry_pos], sizeof(name)); - else - { - strcpy(name, DEFAULT_DIR); -- strncopy(name+strlen(name), filename, sizeof(name)-strlen(name)); -+ copy_path_relative(name+strlen(name), filename, sizeof(name)-strlen(name)); - } - - if (host_os != OS) Property changes on: head/archivers/unarj/files/patch-01-path-unarj.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-aa =================================================================== --- head/archivers/unarj/files/patch-aa (revision 408601) +++ head/archivers/unarj/files/patch-aa (nonexistent) @@ -1,15 +0,0 @@ ---- unarj.h.orig Mon Sep 29 14:00:24 1997 -+++ unarj.h Thu Feb 18 01:06:10 1999 -@@ -106,8 +106,12 @@ - #endif - - typedef unsigned char uchar; /* 8 bits or more */ -+#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) - typedef unsigned int uint; /* 16 - 32 bits or more */ - typedef unsigned short ushort; /* 16 bits or more */ -+#else -+# include -+#endif - typedef unsigned long ulong; /* 32 bits or more */ - - #define USHRT_BIT (CHAR_BIT * sizeof(ushort)) Property changes on: head/archivers/unarj/files/patch-aa ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-ab =================================================================== --- head/archivers/unarj/files/patch-ab (revision 408601) +++ head/archivers/unarj/files/patch-ab (nonexistent) @@ -1,44 +0,0 @@ ---- unarj.c.orig Wed Jun 5 12:28:06 2002 -+++ unarj.c Mon Nov 29 17:48:27 2004 -@@ -54,6 +54,10 @@ - #include - #include - #include -+#include -+#include -+#include -+#include - #else /* !MODERN */ - extern void free(); - extern void exit(); -@@ -718,6 +722,8 @@ - extract() - { - char name[FNAME_MAX]; -+ char dir[FNAME_MAX]; -+ char *pos; - - if (check_flags()) - { -@@ -736,6 +742,21 @@ - - if (host_os != OS) - default_case_path(name); -+ -+ -+ /* -+ 8/8/2000 Phil Knirsch: Bugfix to create subdirectories. Unarj didn't -+ do this for a long time, so it's finally fixed. -+ */ -+ pos = strchr(name, PATH_CHAR); -+ -+ while (pos != NULL) -+ { -+ strncpy(dir, name, pos-name); -+ dir[pos-name] = '\0'; -+ mkdir(dir, 0777); -+ pos = strchr(pos+1, PATH_CHAR); -+ } - - if (file_exists(name)) - { Property changes on: head/archivers/unarj/files/patch-ab ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-ac =================================================================== --- head/archivers/unarj/files/patch-ac (revision 408601) +++ head/archivers/unarj/files/patch-ac (nonexistent) @@ -1,83 +0,0 @@ ---- environ.c.orig Mon Sep 29 14:00:24 1997 -+++ environ.c Thu Feb 18 01:14:35 1999 -@@ -430,16 +430,24 @@ - - #define SUBS_DEFINED - -+#include -+#include - #include -+#include -+#include - --#ifndef time_t --#define time_t long --#endif -+/*#ifndef time_t -+ #define time_t long -+ #endif*/ -+ -+#include - -+#if !(defined(BSD) && BSD >= 199306) - extern struct tm *localtime(); - extern time_t time(); - extern char *strcpy(); - extern voidp *malloc(); -+#endif - - FILE * - file_open(name, mode) -@@ -535,8 +543,12 @@ - } - - long --gettz() /* returns the offset from GMT in seconds */ -+gettz(stamp) /* returns the offset from GMT in seconds */ -+time_t stamp; - { -+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) -+ return -localtime(&stamp)->tm_gmtoff; -+#else - #define NOONOFFSET 43200L - #define SEC_IN_DAY (24L * 60L * 60L) - #define INV_VALUE (SEC_IN_DAY + 1L) -@@ -552,6 +564,7 @@ - noontm = localtime(&noon); - retval = NOONOFFSET - 60 * (60 * noontm->tm_hour - noontm->tm_min); - return retval; -+#endif - } - - long -@@ -600,19 +613,29 @@ - { - time_t m_time; - struct utimbuf -+#ifndef __FreeBSD__ - { - time_t atime; /* New access time */ - time_t mtime; /* New modification time */ - } tb; -+#else -+ tb; -+#endif - - (char *) name; - (uint) attribute; - (uint) host; - -- m_time = mstonix(tstamp) + gettz(); -+ m_time = mstonix(tstamp); -+ m_time += gettz(m_time); - -+#ifndef __FreeBSD__ - tb.mtime = m_time; /* Set modification time */ - tb.atime = m_time; /* Set access time */ -+#else -+ tb.modtime = m_time; /* Set modification time */ -+ tb.actime = m_time; /* Set access time */ -+#endif - - /* set the time stamp on the file */ - return utime(name, &tb); Property changes on: head/archivers/unarj/files/patch-ac ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-01-path-Makefile =================================================================== --- head/archivers/unarj/files/patch-01-path-Makefile (revision 408601) +++ head/archivers/unarj/files/patch-01-path-Makefile (nonexistent) @@ -1,13 +0,0 @@ ---- Makefile.orig Mon Nov 29 16:47:24 2004 -+++ Makefile Mon Nov 29 22:46:56 2004 -@@ -9,7 +9,9 @@ - - decode.o: decode.c unarj.h - --OBJS = unarj.o decode.o environ.o -+sanitize.o: sanitize.c unarj.h -+ -+OBJS = unarj.o decode.o environ.o sanitize.o - - unarj: $(OBJS) - $(CC) $(LDFLAGS) $(OBJS) -o unarj Property changes on: head/archivers/unarj/files/patch-01-path-Makefile ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-00-over-unarj.c =================================================================== --- head/archivers/unarj/files/patch-00-over-unarj.c (revision 408601) +++ head/archivers/unarj/files/patch-00-over-unarj.c (nonexistent) @@ -1,47 +0,0 @@ ---- unarj-2.65.orig/unarj.c -+++ unarj.c -@@ -217,7 +217,7 @@ static uchar arj_flags; - static short method; - static uint file_mode; - static ulong time_stamp; --static short entry_pos; -+static ushort entry_pos; - static ushort host_data; - static uchar *get_ptr; - static UCRC file_crc; -@@ -608,6 +608,7 @@ char *name; - error(M_BADHEADR, ""); - - crc = CRC_MASK; -+ memset(header, 0, sizeof(header)); - fread_crc(header, (int) headersize, fd); - header_crc = fget_crc(fd); - if ((crc ^ CRC_MASK) != header_crc) -@@ -632,9 +633,13 @@ char *name; - - if (origsize < 0 || compsize < 0) - error(M_HEADRCRC, ""); -+ if(first_hdr_size > headersize-2) /* need two \0 for file and comment */ -+ error(M_BADHEADR, ""); - - hdr_filename = (char *)&header[first_hdr_size]; - strncopy(filename, hdr_filename, sizeof(filename)); -+ if(entry_pos >= strlen(filename)) -+ error(M_BADHEADR, ""); - if (host_os != OS) - strparity((uchar *)filename); - if ((arj_flags & PATHSYM_FLAG) != 0) -@@ -733,11 +738,11 @@ extract() - - no_output = 0; - if (command == 'E') -- strcpy(name, &filename[entry_pos]); -+ strncopy(name, &filename[entry_pos], sizeof(name)); - else - { - strcpy(name, DEFAULT_DIR); -- strcat(name, filename); -+ strncopy(name+strlen(name), filename, sizeof(name)-strlen(name)); - } - - if (host_os != OS) Property changes on: head/archivers/unarj/files/patch-00-over-unarj.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/sanitize.c =================================================================== --- head/archivers/unarj/files/sanitize.c (revision 408601) +++ head/archivers/unarj/files/sanitize.c (nonexistent) @@ -1,81 +0,0 @@ -/* - * Path sanitation code by Ludwig Nussel . Public Domain. - */ - -#include "unarj.h" - -#include -#include -#include - -#ifndef PATH_CHAR -#define PATH_CHAR '/' -#endif -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif - -/* copy src into dest converting the path to a relative one inside the current - * directory. dest must hold at least len bytes */ -void copy_path_relative(char *dest, char *src, size_t len) -{ - char* o = dest; - char* p = src; - - *o = '\0'; - - while(*p && *p == PATH_CHAR) ++p; - for(; len && *p;) - { - src = p; - p = strchr(src, PATH_CHAR); - if(!p) p = src+strlen(src); - - /* . => skip */ - if(p-src == 1 && *src == '.' ) - { - if(*p) src = ++p; - } - /* .. => pop one */ - else if(p-src == 2 && *src == '.' && src[1] == '.') - { - if(o != dest) - { - char* tmp; - *o = '\0'; - tmp = strrchr(dest, PATH_CHAR); - if(!tmp) - { - len += o-dest; - o = dest; - if(*p) ++p; - } - else - { - len += o-tmp; - o = tmp; - if(*p) ++p; - } - } - else /* nothing to pop */ - if(*p) ++p; - } - else - { - size_t copy; - if(o != dest) - { - --len; - *o++ = PATH_CHAR; - } - copy = MIN(p-src,len); - memcpy(o, src, copy); - len -= copy; - src += copy; - o += copy; - if(*p) ++p; - } - while(*p && *p == PATH_CHAR) ++p; - } - o[len?0:-1] = '\0'; -} Property changes on: head/archivers/unarj/files/sanitize.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-CVE-2004-0947 =================================================================== --- head/archivers/unarj/files/patch-CVE-2004-0947 (nonexistent) +++ head/archivers/unarj/files/patch-CVE-2004-0947 (revision 408602) @@ -0,0 +1,47 @@ +- Fix buffer overflow problem in filename handling (CAN-2004-0947) +Index: unarj.c +@@ -217,7 +217,7 @@ static uchar arj_flags; + static short method; + static uint file_mode; + static ulong time_stamp; +-static short entry_pos; ++static ushort entry_pos; + static ushort host_data; + static uchar *get_ptr; + static UCRC file_crc; +@@ -608,6 +608,7 @@ char *name; + error(M_BADHEADR, ""); + + crc = CRC_MASK; ++ memset(header, 0, sizeof(header)); + fread_crc(header, (int) headersize, fd); + header_crc = fget_crc(fd); + if ((crc ^ CRC_MASK) != header_crc) +@@ -632,9 +633,13 @@ char *name; + + if (origsize < 0 || compsize < 0) + error(M_HEADRCRC, ""); ++ if(first_hdr_size > headersize-2) /* need two \0 for file and comment */ ++ error(M_BADHEADR, ""); + + hdr_filename = (char *)&header[first_hdr_size]; + strncopy(filename, hdr_filename, sizeof(filename)); ++ if(entry_pos >= strlen(filename)) ++ error(M_BADHEADR, ""); + if (host_os != OS) + strparity((uchar *)filename); + if ((arj_flags & PATHSYM_FLAG) != 0) +@@ -733,11 +738,11 @@ extract() + + no_output = 0; + if (command == 'E') +- strcpy(name, &filename[entry_pos]); ++ strncopy(name, &filename[entry_pos], sizeof(name)); + else + { + strcpy(name, DEFAULT_DIR); +- strcat(name, filename); ++ strncopy(name+strlen(name), filename, sizeof(name)-strlen(name)); + } + + if (host_os != OS) Property changes on: head/archivers/unarj/files/patch-CVE-2004-0947 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-CVE-2004-1027 =================================================================== --- head/archivers/unarj/files/patch-CVE-2004-1027 (nonexistent) +++ head/archivers/unarj/files/patch-CVE-2004-1027 (revision 408602) @@ -0,0 +1,120 @@ +- Fix unchecked path extraction problem (CAN-2004-1027) +Index: unarj.c +@@ -235,6 +235,8 @@ static UCRC crctable[UCHAR_MAX + 1]; + + /* Functions */ + ++void copy_path_relative(char *dest, char *src, size_t len); ++ + static void + make_crctable() + { +@@ -738,11 +740,11 @@ extract() + + no_output = 0; + if (command == 'E') +- strncopy(name, &filename[entry_pos], sizeof(name)); ++ copy_path_relative(name, &filename[entry_pos], sizeof(name)); + else + { + strcpy(name, DEFAULT_DIR); +- strncopy(name+strlen(name), filename, sizeof(name)-strlen(name)); ++ copy_path_relative(name+strlen(name), filename, sizeof(name)-strlen(name)); + } + + if (host_os != OS) +Index: Makefile +@@ -9,7 +9,9 @@ + + decode.o: decode.c unarj.h + +-OBJS = unarj.o decode.o environ.o ++sanitize.o: sanitize.c unarj.h ++ ++OBJS = unarj.o decode.o environ.o sanitize.o + + unarj: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -o unarj +Index: sanitize.c +@@ -0,0 +1,81 @@ ++/* ++ * Path sanitation code by Ludwig Nussel . Public Domain. ++ */ ++ ++#include "unarj.h" ++ ++#include ++#include ++#include ++ ++#ifndef PATH_CHAR ++#define PATH_CHAR '/' ++#endif ++#ifndef MIN ++#define MIN(x,y) ((x)<(y)?(x):(y)) ++#endif ++ ++/* copy src into dest converting the path to a relative one inside the current ++ * directory. dest must hold at least len bytes */ ++void copy_path_relative(char *dest, char *src, size_t len) ++{ ++ char* o = dest; ++ char* p = src; ++ ++ *o = '\0'; ++ ++ while(*p && *p == PATH_CHAR) ++p; ++ for(; len && *p;) ++ { ++ src = p; ++ p = strchr(src, PATH_CHAR); ++ if(!p) p = src+strlen(src); ++ ++ /* . => skip */ ++ if(p-src == 1 && *src == '.' ) ++ { ++ if(*p) src = ++p; ++ } ++ /* .. => pop one */ ++ else if(p-src == 2 && *src == '.' && src[1] == '.') ++ { ++ if(o != dest) ++ { ++ char* tmp; ++ *o = '\0'; ++ tmp = strrchr(dest, PATH_CHAR); ++ if(!tmp) ++ { ++ len += o-dest; ++ o = dest; ++ if(*p) ++p; ++ } ++ else ++ { ++ len += o-tmp; ++ o = tmp; ++ if(*p) ++p; ++ } ++ } ++ else /* nothing to pop */ ++ if(*p) ++p; ++ } ++ else ++ { ++ size_t copy; ++ if(o != dest) ++ { ++ --len; ++ *o++ = PATH_CHAR; ++ } ++ copy = MIN(p-src,len); ++ memcpy(o, src, copy); ++ len -= copy; ++ src += copy; ++ o += copy; ++ if(*p) ++p; ++ } ++ while(*p && *p == PATH_CHAR) ++p; ++ } ++ o[len?0:-1] = '\0'; ++} Property changes on: head/archivers/unarj/files/patch-CVE-2004-1027 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-environ.c =================================================================== --- head/archivers/unarj/files/patch-environ.c (nonexistent) +++ head/archivers/unarj/files/patch-environ.c (revision 408602) @@ -0,0 +1,83 @@ +--- environ.c.orig Mon Sep 29 14:00:24 1997 ++++ environ.c Thu Feb 18 01:14:35 1999 +@@ -430,16 +430,24 @@ + + #define SUBS_DEFINED + ++#include ++#include + #include ++#include ++#include + +-#ifndef time_t +-#define time_t long +-#endif ++/*#ifndef time_t ++ #define time_t long ++ #endif*/ ++ ++#include + ++#if !(defined(BSD) && BSD >= 199306) + extern struct tm *localtime(); + extern time_t time(); + extern char *strcpy(); + extern voidp *malloc(); ++#endif + + FILE * + file_open(name, mode) +@@ -535,8 +543,12 @@ + } + + long +-gettz() /* returns the offset from GMT in seconds */ ++gettz(stamp) /* returns the offset from GMT in seconds */ ++time_t stamp; + { ++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) ++ return -localtime(&stamp)->tm_gmtoff; ++#else + #define NOONOFFSET 43200L + #define SEC_IN_DAY (24L * 60L * 60L) + #define INV_VALUE (SEC_IN_DAY + 1L) +@@ -552,6 +564,7 @@ + noontm = localtime(&noon); + retval = NOONOFFSET - 60 * (60 * noontm->tm_hour - noontm->tm_min); + return retval; ++#endif + } + + long +@@ -600,19 +613,29 @@ + { + time_t m_time; + struct utimbuf ++#ifndef __FreeBSD__ + { + time_t atime; /* New access time */ + time_t mtime; /* New modification time */ + } tb; ++#else ++ tb; ++#endif + + (char *) name; + (uint) attribute; + (uint) host; + +- m_time = mstonix(tstamp) + gettz(); ++ m_time = mstonix(tstamp); ++ m_time += gettz(m_time); + ++#ifndef __FreeBSD__ + tb.mtime = m_time; /* Set modification time */ + tb.atime = m_time; /* Set access time */ ++#else ++ tb.modtime = m_time; /* Set modification time */ ++ tb.actime = m_time; /* Set access time */ ++#endif + + /* set the time stamp on the file */ + return utime(name, &tb); Property changes on: head/archivers/unarj/files/patch-environ.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-unarj.c =================================================================== --- head/archivers/unarj/files/patch-unarj.c (nonexistent) +++ head/archivers/unarj/files/patch-unarj.c (revision 408602) @@ -0,0 +1,44 @@ +--- unarj.c.orig Wed Jun 5 12:28:06 2002 ++++ unarj.c Mon Nov 29 17:48:27 2004 +@@ -54,6 +54,10 @@ + #include + #include + #include ++#include ++#include ++#include ++#include + #else /* !MODERN */ + extern void free(); + extern void exit(); +@@ -718,6 +722,8 @@ + extract() + { + char name[FNAME_MAX]; ++ char dir[FNAME_MAX]; ++ char *pos; + + if (check_flags()) + { +@@ -736,6 +742,21 @@ + + if (host_os != OS) + default_case_path(name); ++ ++ ++ /* ++ 8/8/2000 Phil Knirsch: Bugfix to create subdirectories. Unarj didn't ++ do this for a long time, so it's finally fixed. ++ */ ++ pos = strchr(name, PATH_CHAR); ++ ++ while (pos != NULL) ++ { ++ strncpy(dir, name, pos-name); ++ dir[pos-name] = '\0'; ++ mkdir(dir, 0777); ++ pos = strchr(pos+1, PATH_CHAR); ++ } + + if (file_exists(name)) + { Property changes on: head/archivers/unarj/files/patch-unarj.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/unarj/files/patch-unarj.h =================================================================== --- head/archivers/unarj/files/patch-unarj.h (nonexistent) +++ head/archivers/unarj/files/patch-unarj.h (revision 408602) @@ -0,0 +1,15 @@ +--- unarj.h.orig Mon Sep 29 14:00:24 1997 ++++ unarj.h Thu Feb 18 01:06:10 1999 +@@ -106,8 +106,12 @@ + #endif + + typedef unsigned char uchar; /* 8 bits or more */ ++#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) + typedef unsigned int uint; /* 16 - 32 bits or more */ + typedef unsigned short ushort; /* 16 bits or more */ ++#else ++# include ++#endif + typedef unsigned long ulong; /* 32 bits or more */ + + #define USHRT_BIT (CHAR_BIT * sizeof(ushort)) Property changes on: head/archivers/unarj/files/patch-unarj.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/archivers/unarj/pkg-descr =================================================================== --- head/archivers/unarj/pkg-descr (revision 408601) +++ head/archivers/unarj/pkg-descr (revision 408602) @@ -1,7 +1,5 @@ -This is an extract-only program which allows access to the contents of ARJ -archives. You cannot specify a base directory or select individual files -to extract. UNARJ does not support empty directories or volume labels. -UNARJ is much slower than ARJ because ARJ is highly optimized using -assembly language. +This is an extract-only program which allows access to the contents of ARJ +archives. You cannot specify a base directory or select individual files +to extract. UNARJ does not support empty directories or volume labels. WWW: http://www.arjsoftware.com/