[PATCH] Fix loader compile errors with the new gcc (string errors).

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fix the following compile errors with gcc-4.4.0-0.30 in rawhide:

loader.c:2085: error: offset ‘3’ outside bounds of constant string
copy.c:66: error: offset ‘3’ outside bounds of constant string
getparts.c:97: error: offset ‘3’ outside bounds of constant string
dirbrowser.c:86: error: offset ‘3’ outside bounds of constant string
fwloader.c:212: error: offset ‘3’ outside bounds of constant string
nfsinstall.c:92: error: offset ‘2’ outside bounds of constant string
nfsinstall.c:92: error: offset ‘3’ outside bounds of constant string
nfsinstall.c:92: error: offset ‘2’ outside bounds of constant string
nfsinstall.c:92: error: offset ‘3’ outside bounds of constant string
net.c:89: error: offset ‘2’ outside bounds of constant string
net.c:89: error: offset ‘3’ outside bounds of constant string
urls.c:139: error: offset ‘3’ outside bounds of constant string
undomounts.c:159: error: offset ‘3’ outside bounds of constant string
---
 loader/copy.c       |   11 +++++++++--
 loader/dirbrowser.c |   14 ++++++++++----
 loader/fwloader.c   |    3 ++-
 loader/getparts.c   |    5 +++--
 loader/loader.c     |    3 ++-
 loader/net.c        |    2 +-
 loader/nfsinstall.c |    2 +-
 loader/undomounts.c |    5 +++--
 loader/urls.c       |   14 ++++++++++----
 9 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/loader/copy.c b/loader/copy.c
index 1c61233..330f8f6 100644
--- a/loader/copy.c
+++ b/loader/copy.c
@@ -63,8 +63,15 @@ int copyDirectory(char * from, char * to, void (*warnFn)(char *),
 
     errno = 0;
     while ((ent = readdir(dir))) {
-        if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
-           continue;
+        if (strlen(ent->d_name) == 1) {
+            if (ent->d_name[0] == '.') {
+                continue;
+            }
+        } else if (strlen(ent->d_name) == 2) {
+            if (ent->d_name[0] == '.' && ent->d_name[1] == '.') {
+                continue;
+            }
+        }
 
         sprintf(filespec, "%s/%s", from, ent->d_name);
         sprintf(filespec2, "%s/%s", to, ent->d_name);
diff --git a/loader/dirbrowser.c b/loader/dirbrowser.c
index 6c713ec..47df574 100644
--- a/loader/dirbrowser.c
+++ b/loader/dirbrowser.c
@@ -83,10 +83,16 @@ static char ** get_file_list(char * dirname,
     files = malloc(numfiles * sizeof(char *));
 
     while ((entry = readdir(dir))) {
-        if ((strlen(entry->d_name) == 1) && !strncmp(entry->d_name, ".", 1))
-            continue;
-        if ((strlen(entry->d_name) == 2) && !strncmp(entry->d_name, "..", 2))
-            continue;
+        if (strlen(entry->d_name) == 1) {
+            if (entry->d_name[0] == '.') {
+                continue;
+            }
+        } else if (strlen(entry->d_name) == 2) {
+            if (entry->d_name[0] == '.' && entry->d_name[1] == '.') {
+                continue;
+            }
+        }
+
         if (filterfunc && filterfunc(dirname, entry))
             continue;
 
diff --git a/loader/fwloader.c b/loader/fwloader.c
index 2ab8c7f..d528571 100644
--- a/loader/fwloader.c
+++ b/loader/fwloader.c
@@ -195,6 +195,7 @@ static int get_netlink_msg(struct fw_loader *fwl, struct uevent *uevent)
     size_t len;
     ssize_t size;
     static char buffer[2560];
+    const char *marker = "@";
     char *pos;
     char *msg = NULL, *path = NULL, *envz = NULL;
     char *argv[] = { NULL };
@@ -209,7 +210,7 @@ static int get_netlink_msg(struct fw_loader *fwl, struct uevent *uevent)
         size = sizeof (buffer) - 1;
     buffer[size] = '\0';
 
-    len = strcspn(buffer, "@");
+    len = strcspn(buffer, marker);
     if (!buffer[len])
         return -1;
 
diff --git a/loader/getparts.c b/loader/getparts.c
index 8d2b7c4..e731211 100644
--- a/loader/getparts.c
+++ b/loader/getparts.c
@@ -94,8 +94,9 @@ char **getPartitionsList(char * disk) {
 			break;
 		} else if (toknum == 2) {
 		    /* if size is exactly 1 then ignore it as an extended */
-		    if (!strcmp(b, "1"))
-			break;
+		    if (strlen(b) == 1)
+			if (b[0] == '1')
+			    break;
 		} else if (toknum == 3) {
 		    /* this should be the partition name */
 		    /* now we need to see if this is the block device or */
diff --git a/loader/loader.c b/loader/loader.c
index 98ea24c..c700ebb 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1783,6 +1783,7 @@ int main(int argc, char ** argv) {
     moduleInfoSet modInfo;
 
     char *url = NULL;
+    const char *pathsep = ":";
 
     char ** argptr, ** tmparg;
     char * anacondaArgs[50];
@@ -2082,7 +2083,7 @@ int main(int argc, char ** argv) {
 
     path = getenv("PATH");
     while (path && path[0]) {
-        int n = strcspn(path, ":");
+        int n = strcspn(path, pathsep);
         char c, *binpath;
 
         c = path[n];
diff --git a/loader/net.c b/loader/net.c
index 3a3fae9..63a24a8 100644
--- a/loader/net.c
+++ b/loader/net.c
@@ -86,7 +86,7 @@ static void cidrCallback(newtComponent co, void * dptr) {
             abort();
         }
 
-        if (strcmp(data->ipv4, ""))
+        if (strlen(data->ipv4) != 0)
             upper = 32;
 #ifdef ENABLE_IPV6
     } else if (co == data->cidr6Entry) {
diff --git a/loader/nfsinstall.c b/loader/nfsinstall.c
index 1a81547..612e12f 100644
--- a/loader/nfsinstall.c
+++ b/loader/nfsinstall.c
@@ -89,7 +89,7 @@ static int nfsGetSetup(char ** hostptr, char ** dirptr) {
     do {
         rc = newtWinEntries(_("NFS Setup"), buf, 60, 5, 15,
                             24, entries, _("OK"), _("Back"), NULL);
-    } while (!strcmp(newServer, "") || !strcmp(newDir, ""));
+    } while ((strlen(newServer) == 0) || (strlen(newDir) == 0));
 
     free(buf);
     free(entries[1].text);
diff --git a/loader/undomounts.c b/loader/undomounts.c
index 1884ce6..1436dad 100644
--- a/loader/undomounts.c
+++ b/loader/undomounts.c
@@ -133,6 +133,7 @@ void unmountFilesystems(void) {
     struct loop_info li;
     char * device;
     struct stat sb;
+    const char *slashtmp = "/tmp", *slashdev = "/dev";
 
     fd = open("/proc/mounts", O_RDONLY, 0);
     if (fd < 1) {
@@ -156,8 +157,8 @@ void unmountFilesystems(void) {
 	while (*chptr != ' ') chptr++;
 	*chptr++ = '\0';
 
-	if (strcmp(start, "/") && strcmp(start, "/tmp") && 
-            strcmp(start, "/dev")) {
+	if ((strlen(start) == 1) && (start[0] == '/') &&
+	    strcmp(start, slashtmp) && strcmp(start, slashdev)) {
 	    filesystems[numFilesystems].name = strdup(start);
 	    filesystems[numFilesystems].what = FS;
 	    filesystems[numFilesystems].mounted = 1;
diff --git a/loader/urls.c b/loader/urls.c
index a46e034..6fca6dc 100644
--- a/loader/urls.c
+++ b/loader/urls.c
@@ -134,12 +134,18 @@ static char * getLoginName(char * login, struct iurlinfo *ui) {
 
 /* convert a UI to a URL, returns allocated string */
 char *convertUIToURL(struct iurlinfo *ui) {
-    char *login, *finalPrefix, *url, *p;
+    char *login, *url, *p;
+    char *finalPrefix = NULL;
 
-    if (!strcmp(ui->prefix, "/"))
-	finalPrefix = "/.";
-    else
+    if (strlen(ui->prefix) == 1) {
+	    if (ui->prefix[0] == '/') {
+		finalPrefix = "/.";
+	    }
+    }
+
+    if (finalPrefix == NULL) {
 	finalPrefix = ui->prefix;
+    }
 
     login = "";
     login = getLoginName(login, ui);
-- 
1.6.2

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux