Den Monday 15 December 2008 09:25:33 skrev Arnaud Quette:
> 2008/12/14 Charles Lepple <clep...@gmail.com>:
> > All,
>
> Hey there,
>
> as a side note, this point is linked to the "make package" target in NUT
> 2.4.0
>
> > Arnaud and I were discussing the *.spec files we have in the NUT
> > source tree, and with the 2.4.0 release of NUT just around the corner,
> > I would like to make sure we are pointing people in the right
> > direction for NUT RPMs.

I don't care much about that, sorry. Too much other stuff to maintain (over 
1200 src.rpm packages...).

> @Oden: btw, what's your situation? I heard about rumors, that I hope
> are not true.

Yep. It's true. I'm open to some nice job offers (productization stuff).

I've been lazy or rather due to workload with submitting patches. So here it 
comes:

nut-openssl_linkage_fix.diff
http://wiki.mandriva.com/en/Underlinking

nut-2.2.2-format_not_a_string_literal_and_no_format_arguments.diff
http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments

Cheers.

-- 
Regards // Oden Eriksson
diff -Naurp nut-2.2.2/drivers/bcmxcp.c nut-2.2.2.oden/drivers/bcmxcp.c
--- nut-2.2.2/drivers/bcmxcp.c	2008-02-01 22:07:25.000000000 +0100
+++ nut-2.2.2.oden/drivers/bcmxcp.c	2008-12-18 10:53:18.000000000 +0100
@@ -894,7 +894,8 @@ void upsdrv_initinfo(void)
 
 	/* Make a nice model string and tell NUT about it */
 	snprintfcat(pTmp, len+10, " %dVA", iRating);
-	dstate_setinfo("ups.model", pTmp);
+	dstate_setinfo("ups.model", "%s", pTmp);
+
 	free(pTmp);
 
 	/* Display startup banner */
@@ -940,7 +941,7 @@ void upsdrv_initinfo(void)
 		}
 	}
 	
-	dstate_setinfo("ups.serial", sValue);
+	dstate_setinfo("ups.serial", "%s", sValue);
 	
 	/* Get information on UPS extended limits */
 	res = command_read_sequence(PW_LIMIT_BLOCK_REQ, answer);
@@ -987,7 +988,7 @@ void upsdrv_updateinfo(void)
 						 bcmxcp_meter_map[iIndex].format, sValue);
 
 			/* Set result */
-			dstate_setinfo(bcmxcp_meter_map[iIndex].nut_entity, sValue);
+			dstate_setinfo(bcmxcp_meter_map[iIndex].nut_entity, "%s", sValue);
 		}
 	}
 
diff -Naurp nut-2.2.2/drivers/bestfcom.c nut-2.2.2.oden/drivers/bestfcom.c
--- nut-2.2.2/drivers/bestfcom.c	2008-02-13 03:27:58.000000000 +0100
+++ nut-2.2.2.oden/drivers/bestfcom.c	2008-12-18 10:56:43.000000000 +0100
@@ -193,7 +193,7 @@ static int execute(const char *cmd, char
 	ser_get_line_alert(upsfd, buf, sizeof(buf), '\012', "",
 		POLL_ALERT, alert_handler, 0, 20000);
 
-	ser_send(upsfd, cmd);
+	ser_send(upsfd, "%s", cmd);
 
 	/* Give the UPS some time to chew on what we just sent */
 	usleep(50000);
diff -Naurp nut-2.2.2/drivers/gamatronic.c nut-2.2.2.oden/drivers/gamatronic.c
--- nut-2.2.2/drivers/gamatronic.c	2007-09-08 17:31:37.000000000 +0200
+++ nut-2.2.2.oden/drivers/gamatronic.c	2008-12-18 10:57:15.000000000 +0100
@@ -82,7 +82,7 @@ int sec_cmd(const char mode, const char 
 		mode, command);
     }	
     upsdebugx(1, "PC-->UPS: \"%s\"",msg);
-    ret = ser_send(upsfd,msg);
+    ret = ser_send(upsfd, "%s", msg);
     
     upsdebugx(1, " send returned: %d",ret);
 
diff -Naurp nut-2.2.2/drivers/libhid.c nut-2.2.2.oden/drivers/libhid.c
--- nut-2.2.2/drivers/libhid.c	2008-03-23 21:08:06.000000000 +0100
+++ nut-2.2.2.oden/drivers/libhid.c	2008-12-18 11:02:10.000000000 +0100
@@ -608,7 +608,7 @@ static int string_to_path(const char *st
 	char	buf[SMALLBUF];
 	char	*token, *last; 
 	
-	snprintf(buf, sizeof(buf), string);
+	snprintf(buf, sizeof(buf), "%s", string);
 
 	for (token = strtok_r(buf, ".", &last); token != NULL; token = strtok_r(NULL, ".", &last))
 	{
diff -Naurp nut-2.2.2/drivers/metasys.c nut-2.2.2.oden/drivers/metasys.c
--- nut-2.2.2/drivers/metasys.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/metasys.c	2008-12-18 10:57:47.000000000 +0100
@@ -535,7 +535,7 @@ void upsdrv_initinfo(void)
 	memcpy(serial, my_answer + 7, res - 7);
 	/* serial number start from the 8th byte */
 	serial[12]=0;		/* terminate string */
-	dstate_setinfo("ups.serial", serial);
+	dstate_setinfo("ups.serial", "%s", serial);
 	
 	/* get the ups firmware. The major number is in the 5th byte, the minor is in the 6th */
 	dstate_setinfo("ups.firmware", "%u.%u", my_answer[5], my_answer[6]);
diff -Naurp nut-2.2.2/drivers/mge-utalk.c nut-2.2.2.oden/drivers/mge-utalk.c
--- nut-2.2.2/drivers/mge-utalk.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/mge-utalk.c	2008-12-18 11:00:38.000000000 +0100
@@ -398,7 +398,7 @@ void upsdrv_updateinfo(void)
 			
 			if ( bytes_rcvd > 0 && buf[0] != '?' )  {
 				extract_info(buf, item, infostr, sizeof(infostr));
-				dstate_setinfo(item->type, infostr);
+				dstate_setinfo(item->type, "%s", infostr);
 				upsdebugx(2, "updateinfo: %s == >%s<", item->type, infostr);
 				dstate_dataok();
 			} else {
diff -Naurp nut-2.2.2/drivers/mge-xml.c nut-2.2.2.oden/drivers/mge-xml.c
--- nut-2.2.2/drivers/mge-xml.c	2008-04-14 11:54:37.000000000 +0200
+++ nut-2.2.2.oden/drivers/mge-xml.c	2008-12-18 11:21:28.000000000 +0100
@@ -404,7 +404,7 @@ static char *split_date_time(const char 
 	char	*last = NULL;
 
 	snprintf(mge_scratch_buf, sizeof(mge_scratch_buf), "%s", val);
-	dstate_setinfo("ups.date", strtok_r(mge_scratch_buf, " ", &last));
+	dstate_setinfo("ups.date", "%s", strtok_r(mge_scratch_buf, " ", &last));
 
 	return strtok_r(NULL, " ", &last);
 }
@@ -839,11 +839,11 @@ static int mge_xml_endelm_cb(void *userd
 		/* Some devices also return the serial number here */
 		value = strstr(val, " (SN ");
 		if (value) {
-			dstate_setinfo("ups.serial", rtrim(value + 5, ')'));
+			dstate_setinfo("ups.serial", "%s", rtrim(value + 5, ')'));
 			value[0] = '\0';
 		}
 
-		dstate_setinfo("ups.firmware.aux", val);
+		dstate_setinfo("ups.firmware.aux", "%s", val);
 		break;
 
 	case SU_OBJECT:
@@ -862,7 +862,7 @@ static int mge_xml_endelm_cb(void *userd
 			}
 
 			if (value != NULL) {
-				dstate_setinfo(info->nutname, value);
+				dstate_setinfo(info->nutname, "%s", value);
 			}
 
 			return 0;
diff -Naurp nut-2.2.2/drivers/nitram.c nut-2.2.2.oden/drivers/nitram.c
--- nut-2.2.2/drivers/nitram.c	2008-02-03 12:30:31.000000000 +0100
+++ nut-2.2.2.oden/drivers/nitram.c	2008-12-18 11:02:32.000000000 +0100
@@ -208,7 +208,7 @@ static int setvar(const char *varname, c
 		snprintf(command, sizeof(command), "C4:%s", val);
 		if (execute_command(command, &reply) == 1)
 		{
-			dstate_setinfo("battery.charge.low", val);
+			dstate_setinfo("battery.charge.low", "%s", val);
 		}
 		return STAT_INSTCMD_HANDLED;
 	}
diff -Naurp nut-2.2.2/drivers/oneac.c nut-2.2.2.oden/drivers/oneac.c
--- nut-2.2.2/drivers/oneac.c	2008-01-29 14:57:20.000000000 +0100
+++ nut-2.2.2.oden/drivers/oneac.c	2008-12-18 11:03:12.000000000 +0100
@@ -101,7 +101,7 @@ void upsdrv_initinfo(void)
 	if(strncmp(buffer,MFGR, sizeof(MFGR)))
 		fatalx(EXIT_FAILURE, "Unable to connect to ONEAC UPS on %s\n",device_path);	
  
-	dstate_setinfo("ups.mfr", buffer);
+	dstate_setinfo("ups.mfr", "%s", buffer);
 	dstate_addcmd("test.battery.start");
 	dstate_addcmd("test.battery.stop");
 	dstate_addcmd("test.failure.start");
@@ -149,7 +149,7 @@ void upsdrv_initinfo(void)
 			buffer2[i] = '\0';
 		}
 
-		dstate_setinfo("ups.model", buffer2);
+		dstate_setinfo("ups.model", "%s", buffer2);
 		printf("Found %.10s UPS\n", buffer2);
 	}
 
diff -Naurp nut-2.2.2/drivers/optiups.c nut-2.2.2.oden/drivers/optiups.c
--- nut-2.2.2/drivers/optiups.c	2007-05-26 16:24:26.000000000 +0200
+++ nut-2.2.2.oden/drivers/optiups.c	2008-12-18 11:05:03.000000000 +0100
@@ -155,7 +155,7 @@ static inline int optireadline()
 static inline int optiquery( const char *cmd )
 {
 	upsdebugx(2, "SEND: \"%s\"", cmd );
-	ser_send( upsfd, cmd );
+	ser_send(upsfd, "%s", cmd);
 	if ( optimodel == OPTIMODEL_ZINTO )
 		ser_send( upsfd, "\r\n" );
 	return optireadline();
@@ -195,7 +195,7 @@ static void optifill( ezfill_t *a, int l
 		}
 		else
 		{
-			dstate_setinfo( a[i].var, _buf);
+			dstate_setinfo( a[i].var, "%s", _buf);
 		}
 	}
 }
diff -Naurp nut-2.2.2/drivers/powerp-bin.c nut-2.2.2.oden/drivers/powerp-bin.c
--- nut-2.2.2/drivers/powerp-bin.c	2008-03-08 22:02:27.000000000 +0100
+++ nut-2.2.2.oden/drivers/powerp-bin.c	2008-12-18 11:11:09.000000000 +0100
@@ -276,7 +276,7 @@ static int powpan_setvar(const char *var
 				vartab[type][i].map[j].command);
 
 			if ((powpan_command(command, 4) == 3) && (!memcmp(powpan_answer, command, 3))) {
-				dstate_setinfo(varname, val);
+				dstate_setinfo(varname, "%s", val);
 				return STAT_SET_HANDLED;
 			}
 
@@ -330,7 +330,7 @@ static void powpan_initinfo()
 				continue;
 			}
 
-			dstate_setinfo(vartab[type][i].var, vartab[type][i].map[j].val);
+			dstate_setinfo(vartab[type][i].var, "%s", vartab[type][i].map[j].val);
 			break;
 		}
 	
@@ -343,7 +343,7 @@ static void powpan_initinfo()
 		dstate_setflags(vartab[type][i].var, ST_FLAG_RW);
 
 		for (j = 0; vartab[type][i].map[j].val != 0; j++) {
-			dstate_addenum(vartab[type][i].var, vartab[type][i].map[j].val);
+			dstate_addenum(vartab[type][i].var, "%s", vartab[type][i].map[j].val);
 		}
 	}
 
diff -Naurp nut-2.2.2/drivers/powerp-txt.c nut-2.2.2.oden/drivers/powerp-txt.c
--- nut-2.2.2/drivers/powerp-txt.c	2008-03-08 22:02:27.000000000 +0100
+++ nut-2.2.2.oden/drivers/powerp-txt.c	2008-12-18 11:14:31.000000000 +0100
@@ -85,7 +85,7 @@ static int powpan_command(const char *co
 
 	upsdebug_hex(3, "send", (unsigned char *)command, strlen(command));
 
-	ret = ser_send_pace(upsfd, UPSDELAY, command);
+	ret = ser_send_pace(upsfd, UPSDELAY, "%s", command);
 
 	if (ret < (int)strlen(command)) {
 		return -1;
@@ -160,7 +160,7 @@ static int powpan_setvar(const char *var
 		snprintf(command, sizeof(command), vartab[i].set, atoi(val));
 
 		if ((powpan_command(command) == 2) && (!strcasecmp(powpan_answer, "#0"))) {
-			dstate_setinfo(varname, val);
+			dstate_setinfo(varname, "%s", val);
 			return STAT_SET_HANDLED;
 		}
 
@@ -185,10 +185,10 @@ static void powpan_initinfo()
 		dstate_setinfo("ups.model", "%s", rtrim(s, ' '));
 	}
 	if ((s = strtok(NULL, ",")) != NULL) {
-		dstate_setinfo("ups.firmware", s);
+		dstate_setinfo("ups.firmware", "%s", s);
 	}
 	if ((s = strtok(NULL, ",")) != NULL) {
-		dstate_setinfo("ups.serial", s);
+		dstate_setinfo("ups.serial", "%s", s);
 	}
 	if ((s = strtok(NULL, ",")) != NULL) {
 		dstate_setinfo("ups.mfr", "%s", rtrim(s, ' '));
diff -Naurp nut-2.2.2/drivers/powerpanel.c nut-2.2.2.oden/drivers/powerpanel.c
--- nut-2.2.2/drivers/powerpanel.c	2008-03-08 22:02:27.000000000 +0100
+++ nut-2.2.2.oden/drivers/powerpanel.c	2008-12-18 11:09:53.000000000 +0100
@@ -62,13 +62,13 @@ void upsdrv_initinfo(void)
 	 * Allow to override the following parameters
 	 */
 	if ((s = getval("manufacturer")) != NULL) {
-		dstate_setinfo("ups.mfr", s);
+		dstate_setinfo("ups.mfr", "%s", s);
 	}
 	if ((s = getval("model")) != NULL) {
-		dstate_setinfo("ups.model", s);
+		dstate_setinfo("ups.model", "%s", s);
 	}
 	if ((s = getval("serial")) != NULL) {
-		dstate_setinfo("ups.serial", s);
+		dstate_setinfo("ups.serial", "%s", s);
 	}
 }
 
diff -Naurp nut-2.2.2/drivers/safenet.c nut-2.2.2.oden/drivers/safenet.c
--- nut-2.2.2/drivers/safenet.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/safenet.c	2008-12-18 11:05:49.000000000 +0100
@@ -94,7 +94,7 @@ static int safenet_command(const char *c
 	 * Send the command and read back the status line. When we just send
 	 * a status polling command, it will return the actual status.
 	 */
-	ser_send_pace(upsfd, 10000, command);
+	ser_send_pace(upsfd, "%s", 10000, command);
 	upsdebugx(3, "UPS command %s", command);
 
 	/*
diff -Naurp nut-2.2.2/drivers/snmp-ups.c nut-2.2.2.oden/drivers/snmp-ups.c
--- nut-2.2.2/drivers/snmp-ups.c	2008-01-18 17:16:10.000000000 +0100
+++ nut-2.2.2.oden/drivers/snmp-ups.c	2008-12-18 11:15:39.000000000 +0100
@@ -72,7 +72,7 @@ void upsdrv_initinfo(void)
 
 	snprintf(version, sizeof version, "%s (mib: %s %s)",
 		DRIVER_VERSION, mibname, mibvers);
-	dstate_setinfo("driver.version.internal", version);
+	dstate_setinfo("driver.version.internal", "%s", version);
 	
 	/* add instant commands to the info database. */
 	for (su_info_p = &snmp_info[0]; su_info_p->info_type != NULL ; su_info_p++)			
@@ -517,7 +517,7 @@ void su_setinfo(const char *type, const 
 		return;
 
 	if (strcasecmp(type, "ups.status")) {
-		dstate_setinfo(type, value);
+		dstate_setinfo(type, "%s", value);
 		dstate_setflags(type, flags);
 		dstate_setaux(type, auxdata);
 	}
diff -Naurp nut-2.2.2/drivers/solis.c nut-2.2.2.oden/drivers/solis.c
--- nut-2.2.2/drivers/solis.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/solis.c	2008-12-18 11:06:17.000000000 +0100
@@ -865,7 +865,7 @@ static void getbaseinfo(void)
 
 	/* dummy read attempt to sync - throw it out */
 	snprintf(mycmd, sizeof(mycmd), "%c%c",CMD_UPSCONT, ENDCHAR);
-	ser_send(upsfd, mycmd);
+	ser_send(upsfd, "%s", mycmd);
 
 	/* trying detect solis model */
 	while ( ( !detected ) && ( j < 20 ) )  {
diff -Naurp nut-2.2.2/drivers/tripplite.c nut-2.2.2.oden/drivers/tripplite.c
--- nut-2.2.2/drivers/tripplite.c	2007-05-26 16:24:26.000000000 +0200
+++ nut-2.2.2.oden/drivers/tripplite.c	2008-12-18 11:08:12.000000000 +0100
@@ -163,7 +163,7 @@ static int send_cmd(const char *str, cha
 	int ret;
 	size_t i = 0;
 
-	ser_send(upsfd, str);
+	ser_send(upsfd, "%s", str);
 
 	if (!len || !buf)
 		return -1;
@@ -278,17 +278,17 @@ static int setvar(const char *varname, c
 {
 	if (!strcasecmp(varname, "ups.delay.shutdown")) {
 		offdelay = atoi(val);
-		dstate_setinfo("ups.delay.shutdown", val);
+		dstate_setinfo("ups.delay.shutdown", "%s", val);
 		return STAT_SET_HANDLED;
 	}
 	if (!strcasecmp(varname, "ups.delay.start")) {
 		startdelay = atoi(val);
-		dstate_setinfo("ups.delay.start", val);
+		dstate_setinfo("ups.delay.start", "%s", val);
 		return STAT_SET_HANDLED;
 	}
 	if (!strcasecmp(varname, "ups.delay.reboot")) {
 		bootdelay = atoi(val);
-		dstate_setinfo("ups.delay.reboot", val);
+		dstate_setinfo("ups.delay.reboot", "%s", val);
 		return STAT_SET_HANDLED;
 	}
 	return STAT_SET_UNKNOWN;
@@ -328,15 +328,15 @@ void upsdrv_initinfo(void)
 			'A'+v_value[0]-'0', 'A'+v_value[1]-'0');
 
 	snprintf(buf, sizeof buf, "%d", offdelay);
-	dstate_setinfo("ups.delay.shutdown", buf);
+	dstate_setinfo("ups.delay.shutdown", "%s", buf);
 	dstate_setflags("ups.delay.shutdown", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.shutdown", 3);
 	snprintf(buf, sizeof buf, "%d", startdelay);
-	dstate_setinfo("ups.delay.start", buf);
+	dstate_setinfo("ups.delay.start", "%s", buf);
 	dstate_setflags("ups.delay.start", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.start", 8);
 	snprintf(buf, sizeof buf, "%d", bootdelay);
-	dstate_setinfo("ups.delay.reboot", buf);
+	dstate_setinfo("ups.delay.reboot", "%s", buf);
 	dstate_setflags("ups.delay.reboot", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.reboot", 3);
 
diff -Naurp nut-2.2.2/drivers/tripplite_usb.c nut-2.2.2.oden/drivers/tripplite_usb.c
--- nut-2.2.2/drivers/tripplite_usb.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/tripplite_usb.c	2008-12-18 11:18:58.000000000 +0100
@@ -799,7 +799,7 @@ static int setvar(const char *varname, c
 {
 	if (!strcasecmp(varname, "ups.delay.shutdown")) {
 		offdelay = atoi(val);
-		dstate_setinfo("ups.delay.shutdown", val);
+		dstate_setinfo("ups.delay.shutdown", "%s", val);
 		return STAT_SET_HANDLED;
 	}
 
@@ -884,11 +884,11 @@ void upsdrv_initinfo(void)
 	tl_model = decode_protocol(proto_number);
 
 	if(tl_model == TRIPP_LITE_UNKNOWN)
-		dstate_setinfo("ups.debug.0", hexascdump(proto_value+1, 7));
+		dstate_setinfo("ups.debug.0", "%s", hexascdump(proto_value+1, 7));
 
 	snprintf(proto_string, sizeof(proto_string), "protocol %04x", proto_number);
 
-	dstate_setinfo("ups.firmware.aux", proto_string);
+	dstate_setinfo("ups.firmware.aux", "%s", proto_string);
 
 	/* - * - * - * - * - * - * - * - * - * - * - * - * - * - * - */
 
@@ -921,7 +921,7 @@ void upsdrv_initinfo(void)
 		*model_end = '\0';
 	}
 
-	dstate_setinfo("ups.model", model);
+	dstate_setinfo("ups.model", "%s", model);
 
 	dstate_setinfo("ups.power.nominal", "%d", va);
 
@@ -1004,18 +1004,18 @@ void upsdrv_initinfo(void)
 	dstate_setinfo("ups.debug.load_banks", "%d", switchable_load_banks);
 
 	snprintf(buf, sizeof buf, "%d", offdelay);
-	dstate_setinfo("ups.delay.shutdown", buf);
+	dstate_setinfo("ups.delay.shutdown", "%s", buf);
 	dstate_setflags("ups.delay.shutdown", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.shutdown", 3);
 
 #if 0
 	snprintf(buf, sizeof buf, "%d", startdelay);
-	dstate_setinfo("ups.delay.start", buf);
+	dstate_setinfo("ups.delay.start", "%s", buf);
 	dstate_setflags("ups.delay.start", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.start", 8);
 
 	snprintf(buf, sizeof buf, "%d", bootdelay);
-	dstate_setinfo("ups.delay.reboot", buf);
+	dstate_setinfo("ups.delay.reboot", "%s", buf);
 	dstate_setflags("ups.delay.reboot", ST_FLAG_RW | ST_FLAG_STRING);
 	dstate_setaux("ups.delay.reboot", 3);
 #endif
diff -Naurp nut-2.2.2/drivers/upscode2.c nut-2.2.2.oden/drivers/upscode2.c
--- nut-2.2.2/drivers/upscode2.c	2007-09-28 19:17:47.000000000 +0200
+++ nut-2.2.2.oden/drivers/upscode2.c	2008-12-18 11:09:21.000000000 +0100
@@ -1252,7 +1252,7 @@ static int upsc_simple(const simple_t *s
 				if (stat != 1)
 					upslogx(LOG_ERR, "Bad float: %s %s", var, val);
 				if (sp->desc)
-					dstate_setinfo(sp->desc, val);
+					dstate_setinfo(sp->desc, "%s", val);
 				*sp->aux = 1/fval;
 				break;
 			case t_setpct:
@@ -1261,7 +1261,7 @@ static int upsc_simple(const simple_t *s
 					upslogx(LOG_ERR, "Bad float: %s %s", var, val);
 				*sp->aux = fval*100;
 				if (sp->desc)
-					dstate_setinfo(sp->desc, val);
+					dstate_setinfo(sp->desc, "%s", val);
 				break;
 			case t_setrecpct:
 				stat = sscanf(val, "%f", &fval);
@@ -1269,7 +1269,7 @@ static int upsc_simple(const simple_t *s
 					upslogx(LOG_ERR, "Bad float: %s %s", var, val);
 				*sp->aux = 1/fval*100;
 				if (sp->desc)
-					dstate_setinfo(sp->desc, val);
+					dstate_setinfo(sp->desc, "%s", val);
 				break;
 			case t_final:
 				buffer_empty = 1;
@@ -1285,7 +1285,7 @@ static int upsc_simple(const simple_t *s
 				}
 				else {
 					upslogx(LOG_ERR, "Bad float in %s: %s", var, val);
-					dstate_setinfo(sp->desc, val);
+					dstate_setinfo(sp->desc, "%s", val);
 				}
 				break;
 			case t_finstr:
diff -Naurp nut-2.2.2/drivers/usbhid-ups.c nut-2.2.2.oden/drivers/usbhid-ups.c
--- nut-2.2.2/drivers/usbhid-ups.c	2008-04-22 20:04:43.000000000 +0200
+++ nut-2.2.2.oden/drivers/usbhid-ups.c	2008-12-18 11:01:36.000000000 +0100
@@ -932,11 +932,11 @@ void upsdrv_initups(void)
 
 	/* Retrieve user defined delay settings */
 	if (dstate_getinfo("ups.delay.start") && (val = getval(HU_VAR_ONDELAY))) {
-		dstate_setinfo("ups.delay.start", val);
+		dstate_setinfo("ups.delay.start", "%s", val);
 	}
 
 	if (dstate_getinfo("ups.delay.shutdown") && (val = getval(HU_VAR_OFFDELAY))) {
-		dstate_setinfo("ups.delay.start", val);
+		dstate_setinfo("ups.delay.start", "%s", val);
 	}
 }
 
@@ -1246,7 +1246,7 @@ static bool_t hid_ups_walk(walkmode_t mo
 				if (dstate_getinfo(item->info_type))
 					continue;
 
-				dstate_setinfo(item->info_type, item->dfl);
+				dstate_setinfo(item->info_type, "%s", item->dfl);
 				dstate_setflags(item->info_type, item->info_flags);
 
 				/* Set max length for strings, if needed */
--- clients/Makefile.am	2008-05-05 08:19:42.000000000 -0400
+++ clients/Makefile.am.oden	2008-05-24 09:06:53.000000000 -0400
@@ -46,7 +46,7 @@
 
 # not LDADD.
 libupsclient_la_SOURCES = upsclient.c upsclient.h
-libupsclient_la_LIBADD = ../common/parseconf.lo
+libupsclient_la_LIBADD = ../common/parseconf.lo $(LIBSSL_LDFLAGS)
 libupsclient_la_LDFLAGS = -version-info 1:0:0
 
 # rules for cross-directory targets
_______________________________________________
Nut-upsdev mailing list
Nut-upsdev@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/nut-upsdev

Reply via email to