ports/176327: [PATCH] net/minidlna: update to 1.0.25

William Grzybowski william88 at gmail.com
Thu Feb 21 17:20:00 UTC 2013


>Number:         176327
>Category:       ports
>Synopsis:       [PATCH] net/minidlna: update to 1.0.25
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 21 17:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     William Grzybowski
>Release:        FreeBSD 9.1-RELEASE amd64
>Organization:
>Environment:
>Description:

	Update to 1.0.25
	- Regenerate patches
	- Add getifaddrs function to patch


>How-To-Repeat:
>Fix:

	See attached patch


--- minidlna.patch begins here ---
Index: Makefile
===================================================================
--- Makefile	(revision 312625)
+++ Makefile	(working copy)
@@ -1,14 +1,8 @@
-# New ports collection makefile for:	minidlna
-# Date created:		2010-06-13
-# Whom:			Mikhail Teterin <mi at aldan.algebra.com>
-#
+# Created by: Mikhail Teterin <mi at aldan.algebra.com>
 # $FreeBSD$
-#
 
 PORTNAME=	minidlna
-PORTVERSION=	1.0.24
-PORTREVISION=	2
-PORTEPOCH=	1
+PORTVERSION=	1.0.25
 CATEGORIES=	net multimedia www
 MASTER_SITES=	SF
 DISTFILES=	${PORTNAME}_${PORTVERSION}_src.tar.gz
Index: distinfo
===================================================================
--- distinfo	(revision 312625)
+++ distinfo	(working copy)
@@ -1,2 +1,2 @@
-SHA256 (minidlna_1.0.24_src.tar.gz) = 840ac2303c23d63066912750391d1ebef7761b5b23493e590624a17670ceb942
-SIZE (minidlna_1.0.24_src.tar.gz) = 210775
+SHA256 (minidlna_1.0.25_src.tar.gz) = 170560fbe042c2bbcba78c5f15b54f4fac321ff770490b23b55789be463f2851
+SIZE (minidlna_1.0.25_src.tar.gz) = 211756
Index: files/getifaddr.c
===================================================================
--- files/getifaddr.c	(revision 312625)
+++ files/getifaddr.c	(working copy)
@@ -6,6 +6,7 @@
  * All rights reserved.
  * 
  * Adapted to BSD by jayp and Mikhail T. -- 2010
+ *                   William Grzybowski -- 2013
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -55,6 +56,7 @@
 #include <sys/param.h>
 #include <net/if_dl.h>
 
+#include "upnpglobalvars.h"
 #include "getifaddr.h"
 #include "log.h"
 
@@ -91,7 +93,7 @@
 	return 0;
 }
 
-int
+static int
 getsysaddr(char * buf, int len)
 {
 	int rv=-1;
@@ -242,3 +244,37 @@
         free(buf);
         return !found_entry;
 }
+
+
+int
+getsysaddrs(void)
+{
+        struct sockaddr_in *addr;
+        struct ifaddrs *ifap, *ifa;
+
+	getifaddrs(&ifap);
+        for(ifa=ifap;ifa;ifa=ifa->ifa_next) {
+		if(ifa->ifa_addr == NULL || ifa->ifa_netmask == NULL)
+                        continue;
+
+		addr = (struct sockaddr_in *) ifa->ifa_addr;
+		if(addr->sin_family != AF_INET)
+			continue;
+
+                memcpy(&lan_addr[n_lan_addr].addr, (void *) &addr->sin_addr, sizeof(lan_addr[n_lan_addr].addr));
+                if( !inet_ntop(AF_INET, (void *) &addr->sin_addr, lan_addr[n_lan_addr].str, sizeof(lan_addr[0].str)) )
+                {
+                        DPRINTF(E_ERROR, L_GENERAL, "inet_ntop(): %s\n", strerror(errno));
+                        continue;
+                }
+
+		addr = (struct sockaddr_in *) ifa->ifa_netmask;
+                memcpy(&lan_addr[n_lan_addr].mask, (void *) &addr->sin_addr, sizeof(lan_addr[n_lan_addr].mask));
+                n_lan_addr++;
+                if (n_lan_addr >= MAX_LAN_ADDR)
+                        break;
+        }
+	freeifaddrs(ifap);
+
+        return(n_lan_addr);
+}
Index: files/patch-utils-mpo
===================================================================
--- files/patch-utils-mpo	(revision 312625)
+++ files/patch-utils-mpo	(working copy)
@@ -1,15 +1,16 @@
 Submitted by Vladimir B. Grebenschikov this patch recognizes Samsung's
 images as JPEGs.
 
---- utils.c	2012-01-04 14:16:46.000000000 +0000
-+++ utils.c	2012-01-09 00:29:31.000000000 +0000
-@@ -261,7 +261,8 @@
+diff --git utils.c utils.c
+index 36ff168..5a7ff87 100644
+--- utils.c
++++ utils.c
+@@ -324,7 +324,7 @@ is_audio(const char * file)
  int
  is_image(const char * file)
  {
 -	return (ends_with(file, ".jpg") || ends_with(file, ".jpeg"));
-+	return (ends_with(file, ".jpg") || ends_with(file, ".jpeg") || 
-+	        ends_with(file, ".mpo"));
++	return (ends_with(file, ".jpg") || ends_with(file, ".jpeg") || ends_with(file, ".mpo"));
  }
  
  int
Index: files/patch-warnings
===================================================================
--- files/patch-warnings	(revision 312625)
+++ files/patch-warnings	(working copy)
@@ -1,153 +1,133 @@
---- albumart.c	2012-02-10 18:37:22.000000000 -0500
-+++ albumart.c	2012-04-10 11:54:08.000000000 -0400
-@@ -26,4 +26,5 @@
- #include <setjmp.h>
- #include <errno.h>
-+#include <limits.h>
- 
- #include <jpeglib.h>
-@@ -157,5 +158,5 @@
+diff --git albumart.c albumart.c
+index 54899c6..6cc6192 100644
+--- albumart.c
++++ albumart.c
+@@ -156,7 +156,7 @@ update_if_album_art(const char *path)
+ 	closedir(dh);
  }
  
 -char *
 +static char *
  check_embedded_art(const char *path, const char *image_data, int image_size)
  {
-@@ -218,5 +219,5 @@
+ 	int width = 0, height = 0;
+@@ -217,7 +217,7 @@ check_embedded_art(const char *path, const char *image_data, int image_size)
+ 	}
  	else if( width > 0 && height > 0 )
  	{
 -		size_t nwritten;
 +		int nwritten;
  		if( art_cache_exists(path, &art_path) )
  			goto end_art;
---- image_utils.c	2011-08-22 14:24:18.000000000 -0400
-+++ image_utils.c	2012-04-11 11:50:16.000000000 -0400
-@@ -173,5 +173,5 @@
+ 		cache_dir = strdup(art_path);
+diff --git image_utils.c image_utils.c
+index ee4fcf3..09330a3 100644
+--- image_utils.c
++++ image_utils.c
+@@ -172,7 +172,7 @@ term_source(j_decompress_ptr cinfo)
+ 	return;
  }
  
 -void
 +static void
  jpeg_memory_src(j_decompress_ptr cinfo, const unsigned char * buffer, size_t bufsize)
  {
-@@ -192,5 +192,5 @@
+ 	struct my_src_mgr *src;
+@@ -208,7 +208,7 @@ image_free(image_s *pimage)
+ 	free(pimage);
  }
  
--jmp_buf setjmp_buffer;
-+static jmp_buf setjmp_buffer;
- /* Don't exit on error like libjpeg likes to do */
- static void
-@@ -209,5 +209,5 @@
- }
- 
 -pix
 +static pix
  get_pix(image_s *pimage, int32_t x, int32_t y)
  {
-@@ -223,5 +223,5 @@
+ 	if((x >= 0) && (y >= 0) && (x < pimage->width) && (y < pimage->height))
+@@ -222,7 +222,7 @@ get_pix(image_s *pimage, int32_t x, int32_t y)
+ 	}
  }
  
 -void
 +static void
  put_pix_alpha_replace(image_s *pimage, int32_t x, int32_t y, pix col)
  {
-@@ -399,5 +399,5 @@
+ 	if((x >= 0) && (y >= 0) && (x < pimage->width) && (y < pimage->height))
+@@ -398,7 +398,7 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
+ 	return ret;
  }
  
 -image_s *
 +static image_s *
  image_new(int32_t width, int32_t height)
  {
-@@ -423,6 +423,15 @@
- image_new_from_jpeg(const char * path, int is_file, const char * buf, int size, int scale, int rotate)
- {
--	image_s *vimage;
--	FILE  *file = NULL;
-+	struct {
-+		/*
-+		 * Using the struct to prevent pointers cached in
-+		 * in registers and being clobbered by longjmp().
-+		 * http://lists.apple.com/archives/xcode-users/2003/Dec/msg00050.html
-+		 */
-+		image_s *vimage;
-+		FILE  *file;
-+	} s = { NULL, NULL };
-+#define vimage	s.vimage
-+#define file	s.file
- 	struct jpeg_decompress_struct cinfo;
- 	unsigned char *line[16], *ptr;
-@@ -562,7 +571,9 @@
- 
+ 	image_s *vimage;
+@@ -563,7 +563,7 @@ image_new_from_jpeg(const char * path, int is_file, const char * buf, int size,
  	return vimage;
-+#undef vimage
-+#undef file
  }
  
 -void
 +static void
  image_upsize(image_s * pdest, image_s * psrc, int32_t width, int32_t height)
  {
-@@ -627,5 +638,5 @@
+ 	int32_t vx, vy;
+@@ -626,7 +626,7 @@ image_upsize(image_s * pdest, image_s * psrc, int32_t width, int32_t height)
+ 	}
  }
  
 -void
 +static void
  image_downsize(image_s * pdest, image_s * psrc, int32_t width, int32_t height)
  {
---- log.c	2011-06-20 22:08:21.000000000 -0400
-+++ log.c	2012-01-09 17:57:41.000000000 -0500
-@@ -71,5 +71,5 @@
- 			rhs++;
- 			p = strchr(rhs, ',');
--			n = p ? p - rhs : strlen(rhs);
-+			n = p ? (size_t)(p - rhs) : strlen(rhs);
- 			for (level=0; level_name[level]; level++) {
- 				if (!(strncasecmp(level_name[level], rhs, n)))
-@@ -84,5 +84,5 @@
- 				if (*lhs==',') lhs++;
- 				p = strpbrk(lhs, ",=");
--				n = p ? p - lhs : strlen(lhs);
-+				n = p ? (size_t)(p - lhs) : strlen(lhs);
- 				for (facility=0; facility_name[facility]; facility++) {
- 					if (!(strncasecmp(facility_name[facility], lhs, n)))
---- metadata.c	2011-08-22 14:24:19.000000000 -0400
-+++ metadata.c	2012-01-09 18:00:06.000000000 -0500
-@@ -21,5 +21,5 @@
+ 	int32_t vx, vy;
+diff --git metadata.c metadata.c
+index 39a65ef..0ce2ceb 100644
+--- metadata.c
++++ metadata.c
+@@ -21,6 +21,7 @@
  #include <stdlib.h>
  #include <sys/stat.h>
--
+ 
 +#include <libgen.h>
  #include <unistd.h>
  #include <sys/types.h>
-@@ -95,5 +95,5 @@
+ #include <sys/stat.h>
+@@ -118,7 +119,7 @@ lav_close(AVFormatContext *ctx)
+ }
+ 
+ #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0)
+-# if LIBAVUTIL_VERSION_INT < ((51<<16)+(5<<8)+0)
++# if LIBAVUTIL_VERSION_INT < ((51<<16)+(5<<8)+0) && LIBAVUTIL_VERSION_INT < AV_VERSION_INT(50, 43, 0)
+ #define AV_DICT_IGNORE_SUFFIX AV_METADATA_IGNORE_SUFFIX
+ #define av_dict_get av_metadata_get
+ typedef AVMetadataTag AVDictionaryEntry;
+@@ -129,7 +130,7 @@ typedef AVMetadataTag AVDictionaryEntry;
+ #define MPEG_TS_SYNC_CODE 0x47
  #define MPEG_TS_PACKET_LENGTH 188
  #define MPEG_TS_PACKET_LENGTH_DLNA 192 /* prepends 4 bytes to TS packet */
 -int
 +static int
  dlna_timestamp_is_present(const char * filename, int * raw_packet_size)
  {
-@@ -188,5 +188,5 @@
+ 	unsigned char buffer[3*MPEG_TS_PACKET_LENGTH_DLNA];
+@@ -222,7 +223,7 @@ no_source_video:
+ 	free(file);
  }
  
 -void
 +static void
  parse_nfo(const char * path, metadata_t * m)
  {
-@@ -239,5 +239,5 @@
+ 	FILE *nfo;
+@@ -273,7 +274,7 @@ parse_nfo(const char * path, metadata_t * m)
+ 	fclose(nfo);
  }
  
 -void
 +static void
  free_metadata(metadata_t * m, uint32_t flags)
  {
-@@ -507,5 +507,6 @@
- 	struct jpeg_error_mgr jerr;
- 	FILE *infile;
--	int width=0, height=0, thumb=0;
-+	int width = 0, height = 0;
-+	volatile int thumb = 0;
- 	char make[32], model[64] = {'\0'};
- 	char b[1024];
-@@ -648,5 +649,6 @@
+ 	if( flags & FLAG_TITLE )
+@@ -712,7 +713,8 @@ sqlite_int64
+ GetVideoMetadata(const char * path, char * name)
  {
  	struct stat file;
 -	int ret, i;
@@ -155,208 +135,464 @@
 +	unsigned i;
  	struct tm *modtime;
  	AVFormatContext *ctx = NULL;
---- minissdp.h	2011-07-22 19:03:38.000000000 -0400
-+++ minissdp.h	2012-01-09 18:03:04.000000000 -0500
-@@ -32,7 +32,5 @@
- /*#include "minidlnatypes.h"*/
- 
--int
--OpenAndConfSSDPReceiveSocket();
--/* OpenAndConfSSDPReceiveSocket(int n_lan_addr, struct lan_addr_s * lan_addr);*/
-+int OpenAndConfSSDPReceiveSocket(void);
- 
- /*int
---- scanner.h	2010-11-11 18:48:13.000000000 -0500
-+++ scanner.h	2012-01-09 18:04:19.000000000 -0500
-@@ -82,5 +82,5 @@
- 
- void
--start_scanner();
-+start_scanner(void);
- 
- #endif
---- minissdp.c	2011-08-24 21:27:56.000000000 -0400
-+++ minissdp.c	2012-01-09 18:15:43.000000000 -0500
-@@ -289,5 +289,6 @@
+ 	AVCodecContext *ac = NULL, *vc = NULL;
+diff --git minissdp.c minissdp.c
+index 81ae23e..ac492db 100644
+--- minissdp.c
++++ minissdp.c
+@@ -292,7 +292,8 @@ SendSSDPNotifies(int s, const char * host, unsigned short port,
+                  unsigned int lifetime)
  {
  	struct sockaddr_in sockname;
 -	int l, n, dup, i=0;
-+	int n, dup, i = 0;
++	int n, dup, i=0;
 +	size_t l;
  	char bufr[512];
  
-@@ -352,5 +353,5 @@
+ 	memset(&sockname, 0, sizeof(struct sockaddr_in));
+@@ -355,7 +356,7 @@ SendSSDPNotifies2(int * sockets,
+ 	}
  }
  
 -void
 +static void
  ParseUPnPClient(char *location)
  {
---- minixml.c	2008-10-23 13:30:45.000000000 -0400
-+++ minixml.c	2012-01-09 18:17:20.000000000 -0500
-@@ -36,5 +36,6 @@
+ 	char buf[8192];
+diff --git minissdp.h minissdp.h
+index bcc7ff4..be8cb5d 100644
+--- minissdp.h
++++ minissdp.h
+@@ -32,7 +32,7 @@
+ /*#include "minidlnatypes.h"*/
+ 
+ int
+-OpenAndConfSSDPReceiveSocket();
++OpenAndConfSSDPReceiveSocket(void);
+ /* OpenAndConfSSDPReceiveSocket(int n_lan_addr, struct lan_addr_s * lan_addr);*/
+ 
+ /*int
+diff --git minixml.c minixml.c
+index 3dfb9a2..0831443 100644
+--- minixml.c
++++ minixml.c
+@@ -34,7 +34,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ /* parseatt : used to parse the argument list
   * return 0 (false) in case of success and -1 (true) if the end
   * of the xmlbuffer is reached. */
 -int parseatt(struct xmlparser * p)
-+static int
-+parseatt(struct xmlparser * p)
++static int parseatt(struct xmlparser * p)
  {
  	const char * attname;
-@@ -107,5 +108,6 @@
+ 	int attnamelen;
+@@ -105,7 +105,7 @@ int parseatt(struct xmlparser * p)
+ 
  /* parseelt parse the xml stream and
   * call the callback functions when needed... */
 -void parseelt(struct xmlparser * p)
-+static void
-+parseelt(struct xmlparser * p)
++static void parseelt(struct xmlparser * p)
  {
  	int i;
---- options.c	2011-08-24 21:27:56.000000000 -0400
-+++ options.c	2012-01-09 18:18:31.000000000 -0500
-@@ -74,5 +74,5 @@
+ 	const char * elementname;
+diff --git options.c options.c
+index 435cf9b..1b2d825 100644
+--- options.c
++++ options.c
+@@ -74,7 +74,7 @@ readoptionsfile(const char * fname)
+ 	char *value;
  	char *t;
  	int linenum = 0;
 -	int i;
-+	unsigned i;
++	size_t i;
  	enum upnpconfigoptions id;
  
---- playlist.c	2011-08-04 20:31:20.000000000 -0400
-+++ playlist.c	2012-01-09 18:20:32.000000000 -0500
-@@ -35,4 +35,5 @@
+ 	if(!fname || (strlen(fname) == 0))
+diff --git playlist.c playlist.c
+index 789b48c..8cf1df7 100644
+--- playlist.c
++++ playlist.c
+@@ -35,6 +35,7 @@
+ #include "utils.h"
  #include "sql.h"
  #include "log.h"
 +#include "playlist.h"
  
  int
---- scanner.c	2011-08-24 20:37:10.000000000 -0400
-+++ scanner.c	2012-04-11 11:11:02.000000000 -0400
-@@ -24,4 +24,5 @@
+ insert_playlist(const char * path, char * name)
+diff --git scanner.c scanner.c
+index dc10229..abd0c89 100644
+--- scanner.c
++++ scanner.c
+@@ -23,6 +23,7 @@
+ #include <locale.h>
  #include <libgen.h>
  #include <inttypes.h>
 +#include <limits.h>
  #include <sys/stat.h>
  #include <sys/time.h>
-@@ -73,5 +74,5 @@
+ #include <sys/resource.h>
+@@ -76,7 +77,7 @@ get_next_available_id(const char * table, const char * parentID)
+ 		return objectID;
  }
  
 -int
 +static int
  insert_container(const char * item, const char * rootParent, const char * refID, const char *class,
                   const char *artist, const char *genre, const char *album_art, sqlite3_int64 *objectID, sqlite3_int64 *parentID)
-@@ -166,5 +167,6 @@
+ {
+@@ -169,7 +170,7 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 		else
  		{
  			insert_container(date_taken, IMAGE_DATE_ID, NULL, "album.photoAlbum", NULL, NULL, NULL, &objectID, &parentID);
 -			sprintf(last_date.parentID, IMAGE_DATE_ID"$%"PRIX64, parentID);
-+			sprintf(last_date.parentID, IMAGE_DATE_ID"$%"PRIX64,
-+			    (int64_t)parentID);
++			sprintf(last_date.parentID, IMAGE_DATE_ID"$%"PRIX64, (int64_t)parentID);
  			last_date.objectID = objectID;
  			strcpy(last_date.name, date_taken);
-@@ -189,5 +191,6 @@
+ 			//DEBUG DPRINTF(E_DEBUG, L_SCANNER, "Creating cached date item: %s/%s/%X\n", last_date.name, last_date.parentID, last_date.objectID);
+@@ -192,7 +193,7 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 		if( !valid_cache || strcmp(camera, last_cam.name) != 0 )
  		{
  			insert_container(camera, IMAGE_CAMERA_ID, NULL, "storageFolder", NULL, NULL, NULL, &objectID, &parentID);
 -			sprintf(last_cam.parentID, IMAGE_CAMERA_ID"$%"PRIX64, parentID);
-+			sprintf(last_cam.parentID, IMAGE_CAMERA_ID"$%"PRIX64,
-+			    (int64_t)parentID);
++			sprintf(last_cam.parentID, IMAGE_CAMERA_ID"$%"PRIX64, (int64_t)parentID);
  			strncpy(last_cam.name, camera, 255);
  			last_camdate.name[0] = '\0';
-@@ -201,5 +204,6 @@
+ 		}
+@@ -204,7 +205,7 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 		else
  		{
  			insert_container(date_taken, last_cam.parentID, NULL, "album.photoAlbum", NULL, NULL, NULL, &objectID, &parentID);
 -			sprintf(last_camdate.parentID, "%s$%"PRIX64, last_cam.parentID, parentID);
-+			sprintf(last_camdate.parentID, "%s$%"PRIX64, last_cam.parentID,
-+			    (int64_t)parentID);
++			sprintf(last_camdate.parentID, "%s$%"PRIX64, last_cam.parentID, (int64_t)parentID);
  			last_camdate.objectID = objectID;
  			strcpy(last_camdate.name, date_taken);
-@@ -224,5 +228,5 @@
- 	else if( strstr(class, "audioItem") )
- 	{
--		snprintf(sql, sizeof(sql), "SELECT ALBUM, ARTIST, GENRE, ALBUM_ART from DETAILS where ID = %lld", detailID);
-+		snprintf(sql, sizeof(sql), "SELECT ALBUM, ARTIST, GENRE, ALBUM_ART from DETAILS where ID = %jd", (intmax_t)detailID);
- 		ret = sql_get_table(db, sql, &result, &row, &cols);
- 		if( ret != SQLITE_OK )
-@@ -270,10 +274,12 @@
+ 			//DEBUG DPRINTF(E_DEBUG, L_SCANNER, "Creating cached camdate item: %s/%s/%s/%X\n", camera, last_camdate.name, last_camdate.parentID, last_camdate.objectID);
+@@ -273,12 +274,12 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 			if( !valid_cache || strcmp(artist, last_artist.name) != 0 )
  			{
  				insert_container(artist, MUSIC_ARTIST_ID, NULL, "person.musicArtist", NULL, genre, NULL, &objectID, &parentID);
 -				sprintf(last_artist.parentID, MUSIC_ARTIST_ID"$%"PRIX64, parentID);
-+				sprintf(last_artist.parentID, MUSIC_ARTIST_ID"$%"PRIX64,
-+				    (int64_t)parentID);
++				sprintf(last_artist.parentID, MUSIC_ARTIST_ID"$%"PRIX64, (int64_t)parentID);
  				strcpy(last_artist.name, artist);
  				last_artistAlbum.name[0] = '\0';
  				/* Add this file to the "- All Albums -" container as well */
  				insert_container(_("- All Albums -"), last_artist.parentID, NULL, "album", artist, genre, NULL, &objectID, &parentID);
 -				sprintf(last_artistAlbumAll.parentID, "%s$%"PRIX64, last_artist.parentID, parentID);
-+				sprintf(last_artistAlbumAll.parentID, "%s$%"PRIX64, last_artist.parentID,
-+				    (int64_t)parentID);
++				sprintf(last_artistAlbumAll.parentID, "%s$%"PRIX64, last_artist.parentID, (int64_t)parentID);
  				last_artistAlbumAll.objectID = objectID;
  			}
-@@ -291,5 +297,6 @@
+ 			else
+@@ -294,7 +295,7 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 			{
  				insert_container(album?album:_("Unknown Album"), last_artist.parentID, album?last_album.parentID:NULL,
  				                 "album.musicAlbum", artist, genre, album_art, &objectID, &parentID);
 -				sprintf(last_artistAlbum.parentID, "%s$%"PRIX64, last_artist.parentID, parentID);
-+				sprintf(last_artistAlbum.parentID, "%s$%"PRIX64, last_artist.parentID,
-+				    (int64_t)parentID);
++				sprintf(last_artistAlbum.parentID, "%s$%"PRIX64, last_artist.parentID, (int64_t)parentID);
  				last_artistAlbum.objectID = objectID;
  				strcpy(last_artistAlbum.name, album?album:_("Unknown Album"));
-@@ -312,10 +319,12 @@
+ 				//DEBUG DPRINTF(E_DEBUG, L_SCANNER, "Creating cached artist/album item: %s/%s/%X\n", last_artist.name, last_artist.parentID, last_artist.objectID);
+@@ -315,12 +316,12 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 			if( !valid_cache || strcmp(genre, last_genre.name) != 0 )
  			{
  				insert_container(genre, MUSIC_GENRE_ID, NULL, "genre.musicGenre", NULL, NULL, NULL, &objectID, &parentID);
 -				sprintf(last_genre.parentID, MUSIC_GENRE_ID"$%"PRIX64, parentID);
-+				sprintf(last_genre.parentID, MUSIC_GENRE_ID"$%"PRIX64,
-+				    (int64_t)parentID);
++				sprintf(last_genre.parentID, MUSIC_GENRE_ID"$%"PRIX64, (int64_t)parentID);
  				strcpy(last_genre.name, genre);
  				last_genreArtist.name[0] = '\0';
  				/* Add this file to the "- All Artists -" container as well */
  				insert_container(_("- All Artists -"), last_genre.parentID, NULL, "person", NULL, genre, NULL, &objectID, &parentID);
 -				sprintf(last_genreArtistAll.parentID, "%s$%"PRIX64, last_genre.parentID, parentID);
-+				sprintf(last_genreArtistAll.parentID, "%s$%"PRIX64, last_genre.parentID,
-+				    (int64_t)parentID);
++				sprintf(last_genreArtistAll.parentID, "%s$%"PRIX64, last_genre.parentID, (int64_t)parentID);
  				last_genreArtistAll.objectID = objectID;
  			}
-@@ -332,5 +341,6 @@
+ 			else
+@@ -335,7 +336,7 @@ insert_containers(const char * name, const char *path, const char * refID, const
+ 			{
  				insert_container(artist?artist:_("Unknown Artist"), last_genre.parentID, artist?last_artist.parentID:NULL,
  				                 "person.musicArtist", NULL, genre, NULL, &objectID, &parentID);
 -				sprintf(last_genreArtist.parentID, "%s$%"PRIX64, last_genre.parentID, parentID);
-+				sprintf(last_genreArtist.parentID, "%s$%"PRIX64, last_genre.parentID,
-+				    (int64_t)parentID);
++				sprintf(last_genreArtist.parentID, "%s$%"PRIX64, last_genre.parentID, (int64_t)parentID);
  				last_genreArtist.objectID = objectID;
  				strcpy(last_genreArtist.name, artist?artist:_("Unknown Artist"));
-@@ -656,5 +666,5 @@
+ 				//DEBUG DPRINTF(E_DEBUG, L_SCANNER, "Creating cached genre/artist item: %s/%s/%X\n", last_genreArtist.name, last_genreArtist.parentID, last_genreArtist.objectID);
+@@ -659,7 +660,7 @@ sql_failed:
+ 	return (ret != SQLITE_OK);
  }
  
 -int
 +static int
  filter_audio(const struct dirent *d)
  {
-@@ -670,5 +680,5 @@
+ 	return ( (*d->d_name != '.') &&
+@@ -673,7 +674,7 @@ filter_audio(const struct dirent *d)
+ 	       ) ));
  }
  
 -int
 +static int
  filter_video(const struct dirent *d)
  {
-@@ -682,5 +692,5 @@
+ 	return ( (*d->d_name != '.') &&
+@@ -685,7 +686,7 @@ filter_video(const struct dirent *d)
+ 	       ) );
  }
  
 -int
 +static int
  filter_images(const struct dirent *d)
  {
-@@ -694,5 +704,5 @@
+ 	return ( (*d->d_name != '.') &&
+@@ -697,7 +698,7 @@ filter_images(const struct dirent *d)
+ 	       ) );
  }
  
 -int
 +static int
  filter_media(const struct dirent *d)
  {
-@@ -710,5 +720,5 @@
+ 	return ( (*d->d_name != '.') &&
+@@ -713,7 +714,7 @@ filter_media(const struct dirent *d)
+ 	       ) ));
  }
  
 -void
 +static void
  ScanDirectory(const char * dir, const char * parent, enum media_types dir_type)
  {
---- upnpdescgen.c	2011-05-02 19:50:52.000000000 -0400
-+++ upnpdescgen.c	2012-01-09 18:30:11.000000000 -0500
-@@ -327,12 +327,12 @@
+ 	struct dirent **namelist;
+@@ -804,7 +805,7 @@ ScanDirectory(const char * dir, const char * parent, enum media_types dir_type)
+ }
+ 
+ void
+-start_scanner()
++start_scanner(void)
+ {
+ 	struct media_dir_s * media_path = media_dirs;
+ 	char name[PATH_MAX];
+diff --git scanner.h scanner.h
+index a57eedd..7eaa3a0 100644
+--- scanner.h
++++ scanner.h
+@@ -81,6 +81,6 @@ int
+ CreateDatabase(void);
+ 
+ void
+-start_scanner();
++start_scanner(void);
+ 
+ #endif
+diff --git tagutils/tagutils-aac.c tagutils/tagutils-aac.c
+index 4224d5f..609710a 100644
+--- tagutils/tagutils-aac.c
++++ tagutils/tagutils-aac.c
+@@ -81,7 +81,7 @@ _get_aactags(char *file, struct song_metadata *psong)
+ 	long atom_offset;
+ 	unsigned int atom_length;
+ 
+-	long current_offset = 0;
++	unsigned int current_offset = 0;
+ 	int current_size;
+ 	char current_atom[4];
+ 	char *current_data;
+@@ -119,7 +119,7 @@ _get_aactags(char *file, struct song_metadata *psong)
+ 			current_data = (char*)malloc(len); // extra byte
+ 			memset(current_data, 0x00, len);
+ 
+-			if(fread(current_data, 1, current_size - 8, fin) != current_size - 8)
++			if((int)fread(current_data, 1, current_size - 8, fin) != current_size - 8)
+ 				break;
+ 
+ 			if(!memcmp(current_atom, "\xA9" "nam", 4))
+@@ -243,7 +243,7 @@ _aac_lookforatom(FILE *aac_fp, char *atom_path, unsigned int *atom_length)
+ 	return ftell(aac_fp) - 8;
+ }
+ 
+-int
++static int
+ _aac_check_extended_descriptor(FILE *infile)
+ {
+ 	short int i;
+diff --git tagutils/tagutils-asf.c tagutils/tagutils-asf.c
+index 11da1ae..abc5b78 100644
+--- tagutils/tagutils-asf.c
++++ tagutils/tagutils-asf.c
+@@ -23,7 +23,7 @@
+ static int
+ _asf_read_file_properties(FILE *fp, asf_file_properties_t *p, __u32 size)
+ {
+-	int len;
++	unsigned int len;
+ 
+ 	len = sizeof(*p) - offsetof(asf_file_properties_t, FileID);
+ 	if(size < len)
+@@ -66,10 +66,10 @@ static int
+ _asf_read_audio_stream(FILE *fp, struct song_metadata *psong, int size)
+ {
+ 	asf_audio_stream_t s;
+-	int len;
++	unsigned long len;
+ 
+ 	len = sizeof(s) - sizeof(s.Hdr);
+-	if(len > size)
++	if(len > (unsigned long) size)
+ 		len = size;
+ 
+ 	if(len != fread(&s.wfx, 1, len, fp))
+@@ -90,7 +90,7 @@ _asf_read_media_stream(FILE *fp, struct song_metadata *psong, __u32 size)
+ {
+ 	asf_media_stream_t s;
+ 	avi_audio_format_t wfx;
+-	int len;
++	unsigned int len;
+ 
+ 	len = sizeof(s) - sizeof(s.Hdr);
+ 	if(len > size)
+@@ -121,7 +121,7 @@ static int
+ _asf_read_stream_object(FILE *fp, struct song_metadata *psong, __u32 size)
+ {
+ 	asf_stream_object_t s;
+-	int len;
++	unsigned int len;
+ 
+ 	len = sizeof(s) - sizeof(asf_object_t);
+ 	if(size < len)
+@@ -145,8 +145,8 @@ _asf_read_stream_object(FILE *fp, struct song_metadata *psong, __u32 size)
+ static int
+ _asf_read_extended_stream_object(FILE *fp, struct song_metadata *psong, __u32 size)
+ {
+-	int i, len;
+-	long off;
++	unsigned int i, len;
++	size_t off;
+ 	asf_object_t tmp;
+ 	asf_extended_stream_object_t xs;
+ 	asf_stream_name_t nm;
+@@ -201,7 +201,7 @@ static int
+ _asf_read_header_extension(FILE *fp, struct song_metadata *psong, __u32 size)
+ {
+ 	off_t pos;
+-	long off;
++	size_t off;
+ 	asf_header_extension_t ext;
+ 	asf_object_t tmp;
+ 
+@@ -233,7 +233,7 @@ _asf_read_header_extension(FILE *fp, struct song_metadata *psong, __u32 size)
+ }
+ 
+ static int
+-_asf_load_string(FILE *fp, int type, int size, char *buf, int len)
++_asf_load_string(FILE *fp, int type, unsigned short size, char *buf, int len)
+ {
+ 	unsigned char data[2048];
+ 	__u16 wc;
+@@ -302,7 +302,7 @@ _asf_load_string(FILE *fp, int type, int size, char *buf, int len)
+ static void *
+ _asf_load_picture(FILE *fp, int size, void *bm, int *bm_size)
+ {
+-	int i;
++	unsigned long i;
+ 	char buf[256];
+ #if 0
+ 	//
+diff --git tagutils/tagutils-flc.c tagutils/tagutils-flc.c
+index b8f41d4..839327f 100644
+--- tagutils/tagutils-flc.c
++++ tagutils/tagutils-flc.c
+@@ -26,7 +26,7 @@ _get_flctags(char *filename, struct song_metadata *psong)
+ 	FLAC__Metadata_SimpleIterator *iterator = 0;
+ 	FLAC__StreamMetadata *block;
+ 	unsigned int sec, ms;
+-	int i;
++	unsigned int i;
+ 	int err = 0;
+ 
+ 	if(!(iterator = FLAC__metadata_simple_iterator_new()))
+diff --git tagutils/tagutils-mp3.c tagutils/tagutils-mp3.c
+index 770f231..698f743 100644
+--- tagutils/tagutils-mp3.c
++++ tagutils/tagutils-mp3.c
+@@ -31,7 +31,7 @@ _get_mp3tags(char *file, struct song_metadata *psong)
+ 	struct id3_tag *pid3tag;
+ 	struct id3_frame *pid3frame;
+ 	int err;
+-	int index;
++	unsigned int index;
+ 	int used;
+ 	unsigned char *utf8_text;
+ 	int genre = WINAMP_GENRE_UNKNOWN;
+@@ -405,7 +405,7 @@ static void _mp3_get_average_bitrate(FILE *infile, struct mp3_frameinfo *pfi, co
+ 	off_t file_size;
+ 	unsigned char frame_buffer[2900];
+ 	unsigned char header[4];
+-	int index = 0;
++	unsigned int index = 0;
+ 	int found = 0;
+ 	off_t pos;
+ 	struct mp3_frameinfo fi;
+@@ -549,11 +549,11 @@ _get_mp3fileinfo(char *file, struct song_metadata *psong)
+ 	struct id3header *pid3;
+ 	struct mp3_frameinfo fi;
+ 	unsigned int size = 0;
+-	unsigned int n_read;
++	size_t n_read;
+ 	off_t fp_size = 0;
+ 	off_t file_size;
+ 	unsigned char buffer[1024];
+-	int index;
++	unsigned int index;
+ 
+ 	int xing_flags;
+ 	int found;
+diff --git tagutils/tagutils-wav.c tagutils/tagutils-wav.c
+index e9f6c20..956eef7 100644
+--- tagutils/tagutils-wav.c
++++ tagutils/tagutils-wav.c
+@@ -79,7 +79,7 @@ _get_wavtags(char *filename, struct song_metadata *psong)
+ 
+ 	/* now, walk through the chunks */
+ 	current_offset = 12;
+-	while(current_offset + 8 < psong->file_size)
++	while(current_offset + 8 < (unsigned int) psong->file_size)
+ 	{
+ 		len = 8;
+ 		if(!(len = read(fd, hdr, len)) || (len != 8))
+@@ -162,7 +162,7 @@ _get_wavtags(char *filename, struct song_metadata *psong)
+ 
+ 			off = 4;
+ 			p = tags + off;
+-			while(off < len - 8)
++			while(off < (int) len - 8)
+ 			{
+ 				taglen = GET_WAV_INT32(p + 4);
+ 
+diff --git tagutils/tagutils.c tagutils/tagutils.c
+index 7e147e7..b344552 100644
+--- tagutils/tagutils.c
++++ tagutils/tagutils.c
+@@ -96,7 +96,7 @@ char *winamp_genre[] = {
+ 	       "Unknown"
+ };
+ 
+-#define WINAMP_GENRE_UNKNOWN ((sizeof(winamp_genre) / sizeof(winamp_genre[0])) - 1)
++#define WINAMP_GENRE_UNKNOWN ((int)(sizeof(winamp_genre) / sizeof(winamp_genre[0])) - 1)
+ 
+ 
+ /*
+@@ -132,7 +132,7 @@ static taghandler taghandlers[] = {
+ 	{ "asf", 0,            _get_asffileinfo                                  },
+ 	{ "wav", _get_wavtags, _get_wavfileinfo                                  },
+ 	{ "pcm", 0,            _get_pcmfileinfo                                  },
+-	{ NULL,  0 }
++	{ NULL, NULL, 0 }
+ };
+ 
+ 
+diff --git upnpdescgen.c upnpdescgen.c
+index c3b94e0..2ce8c31 100644
+--- upnpdescgen.c
++++ upnpdescgen.c
+@@ -325,32 +325,32 @@ static const struct stateVar ConnectionManagerVars[] =
+ 	{"SourceProtocolInfo", 1<<7, 0, 0, 44}, /* required */
  	{"SinkProtocolInfo", 1<<7, 0, 0, 48}, /* required */
  	{"CurrentConnectionIDs", 1<<7, 0, 0, 46}, /* required */
 -	{"A_ARG_TYPE_ConnectionStatus", 0, 0, 27}, /* required */
@@ -377,42 +613,48 @@
 +	{NULL, 0, 0, 0, 0}
  };
  
-@@ -340,5 +340,5 @@
+ static const struct argument GetSearchCapabilitiesArgs[] =
  {
  	{"SearchCaps", 2, 10},
 -	{0, 0}
 +	{NULL, 0, 0}
  };
  
-@@ -346,5 +346,5 @@
+ static const struct argument GetSortCapabilitiesArgs[] =
  {
  	{"SortCaps", 2, 11},
 -	{0, 0}
 +	{NULL, 0, 0}
  };
  
-@@ -352,5 +352,5 @@
+ static const struct argument GetSystemUpdateIDArgs[] =
  {
  	{"Id", 2, 12},
 -	{0, 0}
 +	{NULL, 0, 0}
  };
  
-@@ -367,5 +367,5 @@
+ static const struct argument BrowseArgs[] =
+@@ -365,7 +365,7 @@ static const struct argument BrowseArgs[] =
+ 	{"NumberReturned", 2, 8},
  	{"TotalMatches", 2, 8},
  	{"UpdateID", 2, 9},
 -	{0, 0}
 +	{NULL, 0, 0}
  };
  
-@@ -382,5 +382,5 @@
+ static const struct argument SearchArgs[] =
+@@ -380,7 +380,7 @@ static const struct argument SearchArgs[] =
+ 	{"NumberReturned", 2, 8},
  	{"TotalMatches", 2, 8},
  	{"UpdateID", 2, 9},
 -	{0, 0}
 +	{NULL, 0, 0}
  };
  
-@@ -409,14 +409,14 @@
+ static const struct action ContentDirectoryActions[] =
+@@ -407,16 +407,16 @@ static const struct action ContentDirectoryActions[] =
+ static const struct stateVar ContentDirectoryVars[] =
  {
  	{"TransferIDs", 1<<7, 0, 0, 48}, /* 0 */
 -	{"A_ARG_TYPE_ObjectID", 0, 0},
@@ -436,7 +678,9 @@
 +	{"A_ARG_TYPE_UpdateID", 3, 0, 0, 0},
  	//JM{"A_ARG_TYPE_TransferID", 3, 0}, /* 10 */
  	//JM{"A_ARG_TYPE_TransferStatus", 0, 0, 39},
-@@ -426,9 +426,9 @@
+ 	/* Allowed Values : COMPLETED / ERROR / IN_PROGRESS / STOPPED */
+@@ -424,11 +424,11 @@ static const struct stateVar ContentDirectoryVars[] =
+ 	//JM{"A_ARG_TYPE_TransferTotal", 0, 0},
  	//JM{"A_ARG_TYPE_TagValueList", 0, 0},
  	//JM{"A_ARG_TYPE_URI", 5, 0}, /* 15 */
 -	{"SearchCapabilities", 0, 0},
@@ -444,13 +688,14 @@
 +	{"SearchCapabilities", 0, 0, 0, 0},
 +	{"SortCapabilities", 0, 0, 0, 0},
  	{"SystemUpdateID", 3|0x80, 0, 0, 255},
--	//{"ContainerUpdateIDs", 0, 0},
+ 	//{"ContainerUpdateIDs", 0, 0},
 -	{0, 0}
-+	//{"ContainerUpdateIDs", 0, 0, 0, 0},
 +	{NULL, 0, 0, 0, 0}
  };
  
-@@ -466,13 +466,12 @@
+ static const struct argument GetIsAuthorizedArgs[] =
+@@ -464,15 +464,15 @@ static const struct action X_MS_MediaReceiverRegistrarActions[] =
+ 
  static const struct stateVar X_MS_MediaReceiverRegistrarVars[] =
  {
 -	{"A_ARG_TYPE_DeviceID", 0, 0},
@@ -472,307 +717,133 @@
 +	{"ValidationSucceededUpdateID", 3, 0, 0, 0},
 +	{NULL, 0, 0, 0, 0}
  };
---- upnphttp.c	2011-08-18 14:34:59.000000000 -0400
-+++ upnphttp.c	2012-01-09 18:32:37.000000000 -0500
-@@ -1138,5 +1149,5 @@
+ 
+ /* WANCfg.xml */
+diff --git upnpevents.c upnpevents.c
+index 1b5f018..2438bf3 100644
+--- upnpevents.c
++++ upnpevents.c
+@@ -256,7 +256,7 @@ error:
+ static void
+ upnp_event_notify_connect(struct upnp_event_notify * obj)
+ {
+-	int i;
++	unsigned long i;
+ 	const char * p;
+ 	unsigned short port;
+ 	struct sockaddr_in addr;
+diff --git upnphttp.c upnphttp.c
+index b368cd9..58f3f2c 100644
+--- upnphttp.c
++++ upnphttp.c
+@@ -1283,7 +1283,7 @@ SendResp_upnphttp(struct upnphttp * h)
+ 	}
  }
  
 -int
 +static int
  send_data(struct upnphttp * h, char * header, size_t size, int flags)
  {
-@@ -1710,5 +1743,5 @@
+ 	int n;
+@@ -1853,7 +1853,7 @@ SendResp_dlnafile(struct upnphttp * h, char * object)
+ 	                char path[PATH_MAX];
  	                char mime[32];
  	                char dlna[96];
 -	              } last_file = { 0, 0 };
 +	              } last_file = { 0, 0, { '\0' }, { '\0' }, { '\0' } };
  #if USE_FORK
  	pid_t newpid = 0;
---- upnpsoap.c	2011-08-18 19:24:17.000000000 -0400
-+++ upnpsoap.c	2012-01-09 18:38:42.000000000 -0500
-@@ -488,5 +488,5 @@
+ #endif
+diff --git upnpsoap.c upnpsoap.c
+index 3182ca4..ae4ff95 100644
+--- upnpsoap.c
++++ upnpsoap.c
+@@ -542,7 +542,7 @@ set_filter_flags(char * filter, struct upnphttp *h)
+ 	return flags;
  }
  
 -char *
 +static char *
- parse_sort_criteria(char * sortCriteria, int * error)
+ parse_sort_criteria(char *sortCriteria, int *error)
  {
---- utils.h	2011-05-13 18:10:15.000000000 -0400
-+++ utils.h	2012-01-09 19:00:08.000000000 -0500
-@@ -26,5 +26,9 @@
- 
- int
--strcatf(struct string_s *str, char *fmt, ...);
-+strcatf(struct string_s *str, const char *fmt, ...)
-+#ifdef __GNUC__
-+	__attribute__((format(printf, 2, 3)))
-+#endif
-+;
- 
- int
---- utils.c	2011-07-18 14:13:25.000000000 -0400
-+++ utils.c	2012-01-09 18:57:14.000000000 -0500
-@@ -20,5 +20,5 @@
+ 	char *order = NULL;
+diff --git utils.c utils.c
+index d8cba4d..36ff168 100644
+--- utils.c
++++ utils.c
+@@ -19,7 +19,11 @@
+ #include <ctype.h>
  #include <string.h>
  #include <stdlib.h>
--#include <linux/limits.h>
++#if defined(__FreeBSD__)
 +#include <limits.h>
++#else
+ #include <linux/limits.h>
++#endif
  #include <sys/stat.h>
  #include <unistd.h>
-@@ -31,6 +31,7 @@
+ #include <sys/types.h>
+@@ -30,6 +34,7 @@
+ #include "minidlnatypes.h"
  #include "upnpglobalvars.h"
  #include "log.h"
 +#include "utils.h"
  
--inline int
-+int
+ inline int
  strcatf(struct string_s *str, const char *fmt, ...)
+@@ -277,7 +282,7 @@ unsigned int
+ DJBHash(const char *str, int len)
  {
-@@ -282,5 +283,5 @@
- {
  	unsigned int hash = 5381;
 -	unsigned int i = 0;
 +	int i = 0;
  
  	for(i = 0; i < len; str++, i++)
---- uuid.c	2010-11-11 18:48:13.000000000 -0500
-+++ uuid.c	2012-01-09 19:43:31.000000000 -0500
-@@ -38,4 +39,5 @@
+ 	{
+diff --git utils.h utils.h
+index fbd0a91..b5b433a 100644
+--- utils.h
++++ utils.h
+@@ -25,7 +25,11 @@
+ #define __UTILS_H__
+ 
+ int
+-strcatf(struct string_s *str, char *fmt, ...);
++strcatf(struct string_s *str, const char *fmt, ...)
++#ifdef __GNUC__
++       __attribute__((format(printf, 2, 3)))
++#endif
++;
+ 
+ void
+ strncpyt(char *dst, const char *src, size_t len);
+diff --git uuid.c uuid.c
+index bdb4abc..bfa22b7 100644
+--- uuid.c
++++ uuid.c
+@@ -37,6 +37,7 @@
+ 
  #include "getifaddr.h"
  #include "log.h"
 +#include "uuid.h"
  
  #define ETH_ALEN 6
-@@ -108,3 +88,3 @@
+ #define NSEC_PER_SEC 1000000000L
+@@ -106,7 +107,7 @@ read_random_bytes(unsigned char *buf, size_t size)
+ 	}
+ }
  
 -void
 +static void
  init_clockseq(void)
-@@ -118,5 +98,5 @@
+ {
+ 	unsigned char buf[4];
+@@ -117,7 +118,7 @@ init_clockseq(void)
+ 	clock_seq_initialized = 1;
  }
  
 -int
 +static int
  generate_uuid(unsigned char uuid_out[16])
  {
---- tagutils/tagutils.c	2010-11-11 18:48:14.000000000 -0500
-+++ tagutils/tagutils.c	2012-01-09 19:08:06.000000000 -0500
-@@ -97,5 +98,5 @@
- };
- 
--#define WINAMP_GENRE_UNKNOWN ((sizeof(winamp_genre) / sizeof(winamp_genre[0])) - 1)
-+#define WINAMP_GENRE_UNKNOWN ((int)(sizeof(winamp_genre) / sizeof(winamp_genre[0])) - 1)
- 
- 
-@@ -133,5 +134,5 @@
- 	{ "wav", _get_wavtags, _get_wavfileinfo                                  },
- 	{ "pcm", 0,            _get_pcmfileinfo                                  },
--	{ NULL,  0 }
-+	{ NULL, NULL, 0 }
- };
- 
---- tagutils/tagutils-mp3.c	2010-11-11 18:48:14.000000000 -0500
-+++ tagutils/tagutils-mp3.c	2012-01-09 19:14:45.000000000 -0500
-@@ -405,5 +406,5 @@
- 	unsigned char frame_buffer[2900];
- 	unsigned char header[4];
--	int index = 0;
-+	unsigned int index = 0;
- 	int found = 0;
- 	off_t pos;
-@@ -549,9 +550,9 @@
- 	struct mp3_frameinfo fi;
- 	unsigned int size = 0;
--	unsigned int n_read;
-+	size_t n_read;
- 	off_t fp_size = 0;
- 	off_t file_size;
- 	unsigned char buffer[1024];
--	int index;
-+	unsigned int index;
- 
- 	int xing_flags;
-@@ -618,5 +619,5 @@
- 	{
- 		fseek(infile, fp_size, SEEK_SET);
--		if((n_read = fread(buffer, 1, sizeof(buffer), infile)) < 4)   // at least mp3 frame header size (i.e. 4 bytes)
-+		if((n_read = fread(buffer, 1, sizeof(buffer), infile)) < 50)
- 		{
- 			fclose(infile);
---- tagutils/tagutils-aac.c	2010-11-11 18:48:14.000000000 -0500
-+++ tagutils/tagutils-aac.c	2012-01-09 19:20:35.000000000 -0500
-@@ -82,5 +82,5 @@
- 	unsigned int atom_length;
- 
--	long current_offset = 0;
-+	unsigned int current_offset = 0;
- 	int current_size;
- 	char current_atom[4];
-@@ -120,5 +120,6 @@
- 			memset(current_data, 0x00, len);
- 
--			if(fread(current_data, 1, current_size - 8, fin) != current_size - 8)
-+			if ((int)fread(current_data, 1, current_size - 8, fin)
-+			    != current_size - 8)
- 				break;
- 
-@@ -244,5 +245,5 @@
- }
- 
--int
-+static int
- _aac_check_extended_descriptor(FILE *infile)
- {
---- tagutils/tagutils-flc.c	2011-05-02 19:50:52.000000000 -0400
-+++ tagutils/tagutils-flc.c	2012-01-09 19:22:35.000000000 -0500
-@@ -27,5 +27,5 @@
- 	FLAC__StreamMetadata *block;
- 	unsigned int sec, ms;
--	int i;
-+	unsigned int i;
- 	int err = 0;
- 
---- tagutils/tagutils-asf.c	2011-05-16 20:25:03.000000000 -0400
-+++ tagutils/tagutils-asf.c	2012-01-09 19:28:32.000000000 -0500
-@@ -24,5 +24,5 @@
- _asf_read_file_properties(FILE *fp, asf_file_properties_t *p, __u32 size)
- {
--	int len;
-+	unsigned int len;
- 
- 	len = sizeof(*p) - offsetof(asf_file_properties_t, FileID);
-@@ -64,8 +64,8 @@
- 
- static int
--_asf_read_audio_stream(FILE *fp, struct song_metadata *psong, int size)
-+_asf_read_audio_stream(FILE *fp, struct song_metadata *psong, __u32 size)
- {
- 	asf_audio_stream_t s;
--	int len;
-+	unsigned int len;
- 
- 	len = sizeof(s) - sizeof(s.Hdr);
-@@ -91,5 +91,5 @@
- 	asf_media_stream_t s;
- 	avi_audio_format_t wfx;
--	int len;
-+	unsigned int len;
- 
- 	len = sizeof(s) - sizeof(s.Hdr);
-@@ -122,5 +122,5 @@
- {
- 	asf_stream_object_t s;
--	int len;
-+	unsigned int len;
- 
- 	len = sizeof(s) - sizeof(asf_object_t);
-@@ -146,6 +146,6 @@
- _asf_read_extended_stream_object(FILE *fp, struct song_metadata *psong, __u32 size)
- {
--	int i, len;
--	long off;
-+	unsigned int i, len;
-+	size_t off;
- 	asf_object_t tmp;
- 	asf_extended_stream_object_t xs;
-@@ -202,5 +202,5 @@
- {
- 	off_t pos;
--	long off;
-+	size_t off;
- 	asf_header_extension_t ext;
- 	asf_object_t tmp;
-@@ -234,5 +234,5 @@
- 
- static int
--_asf_load_string(FILE *fp, int type, int size, char *buf, int len)
-+_asf_load_string(FILE *fp, int type, unsigned short size, char *buf, int len)
- {
- 	unsigned char data[2048];
-@@ -303,5 +303,5 @@
- _asf_load_picture(FILE *fp, int size, void *bm, int *bm_size)
- {
--	int i;
-+	unsigned int i;
- 	char buf[256];
- #if 0
---- tagutils/tagutils.h	2011-05-16 20:25:03.000000000 -0400
-+++ tagutils/tagutils.h	2012-01-09 19:31:58.000000000 -0500
-@@ -44,5 +44,5 @@
- 
- struct song_metadata {
--	int file_size;
-+	off_t file_size;
- 	char *dirpath;
- 	char *path;
---- tagutils/tagutils-wav.c	2012-01-17 17:49:02.000000000 -0500
-+++ tagutils/tagutils-wav.c	2012-04-10 12:01:10.000000000 -0400
-@@ -34,5 +34,4 @@
- {
- 	int fd;
--	uint32_t len;
- 	unsigned char hdr[12];
- 	unsigned char fmt[16];
-@@ -58,6 +57,5 @@
- 	}
- 
--	len = 12;
--	if(!(len = read(fd, hdr, len)) || (len != 12))
-+	if (read(fd, hdr, sizeof hdr) != sizeof hdr)
- 	{
- 		DPRINTF(E_WARN, L_SCANNER, "Could not read wav header from %s\n", filename);
-@@ -82,6 +80,5 @@
- 	while(current_offset < psong->file_size)
- 	{
--		len = 8;
--		if(!(len = read(fd, hdr, len)) || (len != 8))
-+		if (read(fd, hdr, 8) != 8)
- 		{
- 			close(fd);
-@@ -101,16 +98,8 @@
- 		//        block_len);
- 
--		if(block_len < 0)
--		{
--			close(fd);
--			DPRINTF(E_WARN, L_SCANNER, "Bad block len: %s\n", filename);
--			return -1;
--		}
--
- 		if(strncmp((char*)&hdr, "fmt ", 4) == 0)
- 		{
- 			//DEBUG DPRINTF(E_DEBUG,L_SCANNER,"Found 'fmt ' header\n");
--			len = 16;
--			if(!read(fd, fmt, len) || (len != 16))
-+			if (read(fd, fmt, 16) != 16)
- 			{
- 				close(fd);
-@@ -144,12 +133,17 @@
- 			int taglen;
- 			char **m;
-+			ssize_t len;
- 
- 			len = GET_WAV_INT32(hdr + 4);
--			if(len > 65536)
-+			if(len <=0 || len > 65536)
- 				goto next_block;
- 
- 			tags = malloc(len+1);
--			if(!tags)
-+			if(!tags) {
-+				DPRINTF(E_WARN, L_SCANNER,
-+				    "Failed to malloc %ld bytes",
-+				    (long)len);
- 				goto next_block;
-+			}
- 
- 			if(read(fd, tags, len) < len ||
---- upnpevents.c	2012-02-13 17:48:56.000000000 -0500
-+++ upnpevents.c	2012-04-11 11:31:14.000000000 -0400
-@@ -257,5 +257,5 @@
- upnp_event_notify_connect(struct upnp_event_notify * obj)
- {
--	int i;
-+	unsigned int i;
- 	const char * p;
- 	unsigned short port;
+ 	static u_int64_t last_time_all;
--- minidlna.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list