All pastes #1599747 Raw Edit

Untitled

public text v1 · immutable
#1599747 ·published 2009-10-06 22:10 UTC
rendered paste body
..but I have

kexec/kexec.c: In function 'kexec_loaded':
kexec/kexec.c:946: warning: passing argument 1 of 'fgets' from incompatible pointer type
kexec/kexec.c:948: warning: passing argument 1 of 'strtol' from incompatible pointer type
kexec/kexec.c: In function 'get_command_line':
kexec/kexec.c:1000: warning: unused variable 'len'
kexec/kexec.c: In function 'kexec_loaded':
kexec/kexec.c:952: warning: 'ret' may be used uninitialized in this function




Index: kexec-tools-2.0.1/kexec/kexec.c
===================================================================
--- kexec-tools-2.0.1.orig/kexec/kexec.c	2008-02-24 14:15:46.950825917 +0100
+++ kexec-tools-2.0.1/kexec/kexec.c	2009-10-06 00:37:01.000000000 +0200
@@ -935,11 +935,19 @@
 {
	int ret;
	FILE *fp;
+	char *endptr;
+	char *line[3];

	fp = fopen("/sys/kernel/kexec_loaded", "r");
	if (fp == NULL)
		return -1;
-	fscanf(fp, "%d", &ret);
+/*	fscanf(fp, "%d", &ret); */
+
+	if ( NULL == fgets(line, sizeof(line), fp) ) {
+		return -1;
+	ret = strtol(line, &endptr, 10);
+	}
+
	fclose(fp);
	return ret;
 }
@@ -989,17 +997,22 @@
 char *get_command_line(void)
 {
	FILE *fp;
-	size_t len;
-	char *line = NULL;
+	const int sizeof_line = 1024;
+	char *line = malloc(sizeof_line); /* according to strdup() later */

	fp = fopen("/proc/cmdline", "r");
	if (!fp)
-		die("Could not read /proc/cmdline.");
-	getline(&line, &len, fp);
+		die("Could not open /proc/cmdline.");
+
+	if ( NULL == fgets(line, sizeof(line), fp) ) {
+		die("Can't read /proc/cmdline.");
+
+/* 	getline(&line, &len, fp); */
	fclose(fp);
+	}

	if (line) {
		/* strip newline */
-		*(line + strlen(line) - 1) = 0;
+		line[strlen(line) - 1] = '\0';

		remove_parameter(line, "BOOT_IMAGE");
		if (kexec_flags & KEXEC_ON_CRASH)