[libvirt] PATCH: Remove unused Open Nebula code, fix potential missing NULL terminator

Daniel P. Berrange berrange at redhat.com
Tue Jun 30 11:06:56 UTC 2009


This patch removes a bunch of unused Open Nebula code which has a number
of flaws. It also fixes handling of a strncpy() call to ensure there is
a NULL terminator in the copied string. And finally it makes a couple
of strings be 'const' since they're never changed

Daniel

Index: src/opennebula/one_client.c
===================================================================
RCS file: /data/cvs/libvirt/src/opennebula/one_client.c,v
retrieving revision 1.1
diff -u -p -r1.1 one_client.c
--- src/opennebula/one_client.c	24 Jun 2009 17:32:56 -0000	1.1
+++ src/opennebula/one_client.c	30 Jun 2009 11:05:12 -0000
@@ -33,16 +33,9 @@ void c_oneStart()
     xmlrpc_client_init2(&one_client.env, XMLRPC_CLIENT_NO_FLAGS,
         "OpenNebula API Client", "1.2", NULL, 0);
 
-    one_client.error=0;
-
-#ifdef ONED_PORT
-    one_client.url=(char *)malloc(64);
-    snprintf(one_client.url, 63, "http://localhost:%d/RPC2", ONED_PORT);
-#else
-    one_client.url=(char *)"http://localhost:2633/RPC2";
-#endif
-
-    one_client.session=(char *)"one-session";
+    one_client.error = 0;
+    one_client.url = "http://localhost:2633/RPC2";
+    one_client.session = "one-session";
 };
 
 
@@ -94,35 +87,6 @@ int c_oneMigrate(int vmid, int hid, int 
     return c_oneReturnCode(resultP);
 }
 
-int c_oneAllocate(char* template_file)
-{
-    int file;
-    int size;
-    int bytes_read;
-    char *file_text;
-    int return_code;
-
-    file=open(template_file, O_RDONLY);
-    size=lseek(file, 0, SEEK_END);
-    lseek(file, 0, SEEK_SET);
-
-    file_text=(char *)malloc(size+1);
-    bytes_read=read(file, file_text, size);
-    close(file);
-
-    if(bytes_read==size) {
-        file_text[size]=0;
-
-        return_code=c_oneAllocateTemplate(file_text);
-        free(file_text);
-
-        return return_code;
-    } else {
-        free(file_text);
-        return -1;
-    }
-}
-
 int c_oneAllocateTemplate(char* vm_template)
 {
     xmlrpc_value *resultP;
@@ -222,6 +186,7 @@ int c_oneVmInfo(int vmid, char* ret_info
     if( return_code )
     {
         strncpy(ret_info, return_string, length-1);
+        ret_info[length-1] = '\0';
 
         xmlrpc_DECREF(resultP);
         free(return_string);
@@ -241,9 +206,6 @@ void c_oneFree()
 {
     xmlrpc_env_clean(&one_client.env);
     xmlrpc_client_cleanup();
-#ifdef ONE_PORT
-    free(one_client.url);
-#endif
 }
 
 
Index: src/opennebula/one_client.h
===================================================================
RCS file: /data/cvs/libvirt/src/opennebula/one_client.h,v
retrieving revision 1.1
diff -u -p -r1.1 one_client.h
--- src/opennebula/one_client.h	24 Jun 2009 17:32:56 -0000	1.1
+++ src/opennebula/one_client.h	30 Jun 2009 11:05:12 -0000
@@ -24,8 +24,8 @@
 
 struct _oneClient {
     xmlrpc_env env;
-    char *url;
-    char *session;
+    const char *url;
+    const char *session;
     char *error;
 };
 
@@ -38,8 +38,6 @@ int c_oneDeploy(int vmid, int hid);
 
 int c_oneMigrate(int vmid, int hid, int flag);
 
-int c_oneAllocate(char* template_file);
-
 int c_oneAllocateTemplate(char* vm_template);
 
 int c_oneAction(int vmid,char* action);

-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list