Accepting request 305763 from Virtualization

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/305763
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hyper-v?expand=0&rev=31
This commit is contained in:
Stephan Kulow 2015-05-10 08:55:56 +00:00 committed by Git OBS Bridge
commit e7ed435837
4 changed files with 39 additions and 32 deletions

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Apr 30 11:25:47 UTC 2015 - ohering@suse.de
- hv: hypervvssd: call endmntent before call setmntent again
- remove unused bytes_written from kvp_update_file()
- address compiler warnings for hv_kvp_daemon.c
- kvp_daemon: make IPv6-only-injection work
- address compiler warnings for hv_fcopy_daemon.c
- do not add redundant '/' in hv_start_fcopy()
-------------------------------------------------------------------
Thu Apr 16 15:23:18 UTC 2015 - ohering@suse.de

View File

@ -43,15 +43,9 @@ static int hv_start_fcopy(struct hv_start_fcopy *smsg)
int error = HV_E_FAIL;
char *q, *p;
/*
* If possile append a path seperator to the path.
*/
if (strlen((char *)smsg->path_name) < (W_MAX_PATH - 2))
strcat((char *)smsg->path_name, "/");
p = (char *)smsg->path_name;
snprintf(target_fname, sizeof(target_fname), "%s/%s",
(char *)smsg->path_name, smsg->file_name);
(char *)smsg->path_name, (char *)smsg->file_name);
syslog(LOG_INFO, "Target file name: %s", target_fname);
/*
@ -137,7 +131,7 @@ void print_usage(char *argv[])
int main(int argc, char *argv[])
{
int fd, fcopy_fd, len;
int fcopy_fd, len;
int error;
int daemonize = 1, long_index = 0, opt;
int version = FCOPY_CURRENT_VERSION;

View File

@ -148,7 +148,6 @@ static void kvp_release_lock(int pool)
static void kvp_update_file(int pool)
{
FILE *filep;
size_t bytes_written;
/*
* We are going to write our in-memory registry out to
@ -164,8 +163,7 @@ static void kvp_update_file(int pool)
exit(EXIT_FAILURE);
}
bytes_written = fwrite(kvp_file_info[pool].records,
sizeof(struct kvp_record),
fwrite(kvp_file_info[pool].records, sizeof(struct kvp_record),
kvp_file_info[pool].num_records, filep);
if (ferror(filep) || fclose(filep)) {
@ -311,7 +309,7 @@ static int kvp_file_init(void)
return 0;
}
static int kvp_key_delete(int pool, const char *key, int key_size)
static int kvp_key_delete(int pool, const __u8 *key, int key_size)
{
int i;
int j, k;
@ -354,8 +352,8 @@ static int kvp_key_delete(int pool, const char *key, int key_size)
return 1;
}
static int kvp_key_add_or_modify(int pool, const char *key, int key_size, const char *value,
int value_size)
static int kvp_key_add_or_modify(int pool, const __u8 *key, int key_size,
const __u8 *value, int value_size)
{
int i;
int num_records;
@ -408,7 +406,7 @@ static int kvp_key_add_or_modify(int pool, const char *key, int key_size, const
return 0;
}
static int kvp_get_value(int pool, const char *key, int key_size, char *value,
static int kvp_get_value(int pool, const __u8 *key, int key_size, __u8 *value,
int value_size)
{
int i;
@ -440,8 +438,8 @@ static int kvp_get_value(int pool, const char *key, int key_size, char *value,
return 1;
}
static int kvp_pool_enumerate(int pool, int index, char *key, int key_size,
char *value, int value_size)
static int kvp_pool_enumerate(int pool, int index, __u8 *key, int key_size,
__u8 *value, int value_size)
{
struct kvp_record *record;
@ -662,7 +660,7 @@ static char *kvp_if_name_to_mac(char *if_name)
char *p, *x;
char buf[256];
char addr_file[256];
int i;
unsigned int i;
char *mac_addr = NULL;
snprintf(addr_file, sizeof(addr_file), "%s%s%s", "/sys/class/net/",
@ -701,7 +699,7 @@ static char *kvp_mac_to_if_name(char *mac)
char buf[256];
char *kvp_net_dir = "/sys/class/net/";
char dev_id[256];
int i;
unsigned int i;
dir = opendir(kvp_net_dir);
if (dir == NULL)
@ -751,7 +749,7 @@ static char *kvp_mac_to_if_name(char *mac)
static void kvp_process_ipconfig_file(char *cmd,
char *config_buf, int len,
char *config_buf, unsigned int len,
int element_size, int offset)
{
char buf[256];
@ -769,7 +767,7 @@ static void kvp_process_ipconfig_file(char *cmd,
if (offset == 0)
memset(config_buf, 0, len);
while ((p = fgets(buf, sizeof(buf), file)) != NULL) {
if ((len - strlen(config_buf)) < (element_size + 1))
if (len < strlen(config_buf) + element_size + 1)
break;
x = strchr(p, '\n');
@ -917,7 +915,7 @@ static int kvp_process_ip_address(void *addrp,
static int
kvp_get_ip_info(int family, char *if_name, int op,
void *out_buffer, int length)
void *out_buffer, unsigned int length)
{
struct ifaddrs *ifap;
struct ifaddrs *curp;
@ -1020,8 +1018,7 @@ kvp_get_ip_info(int family, char *if_name, int op,
weight += hweight32(&w[i]);
sprintf(cidr_mask, "/%d", weight);
if ((length - sn_offset) <
(strlen(cidr_mask) + 1))
if (length < sn_offset + strlen(cidr_mask) + 1)
goto gather_ipaddr;
if (sn_offset == 0)
@ -1309,16 +1306,17 @@ static int kvp_set_ip_info(char *if_name, struct hv_kvp_ipaddr_value *new_val)
if (error)
goto setval_error;
/*
* The dhcp_enabled flag is only for IPv4. In the case the host only
* injects an IPv6 address, the flag is true, but we still need to
* proceed to parse and pass the IPv6 information to the
* disto-specific script hv_set_ifconfig.
*/
if (new_val->dhcp_enabled) {
error = kvp_write_file(file, "BOOTPROTO", "", "dhcp");
if (error)
goto setval_error;
/*
* We are done!.
*/
goto setval_done;
} else {
error = kvp_write_file(file, "BOOTPROTO", "", "none");
if (error)
@ -1346,7 +1344,6 @@ static int kvp_set_ip_info(char *if_name, struct hv_kvp_ipaddr_value *new_val)
if (error)
goto setval_error;
setval_done:
fclose(file);
/*

View File

@ -82,6 +82,7 @@ static int vss_operate(int operation)
char match[] = "/dev/";
FILE *mounts;
struct mntent *ent;
char errdir[1024] = {0};
unsigned int cmd;
int error = 0, root_seen = 0, save_errno = 0;
@ -116,6 +117,8 @@ static int vss_operate(int operation)
goto err;
}
endmntent(mounts);
if (root_seen) {
error |= vss_do_freeze("/", cmd);
if (error && operation == VSS_OP_FREEZE)
@ -125,16 +128,19 @@ static int vss_operate(int operation)
goto out;
err:
save_errno = errno;
if (ent) {
strncpy(errdir, ent->mnt_dir, sizeof(errdir)-1);
endmntent(mounts);
}
vss_operate(VSS_OP_THAW);
/* Call syslog after we thaw all filesystems */
if (ent)
syslog(LOG_ERR, "FREEZE of %s failed; error:%d %s",
ent->mnt_dir, save_errno, strerror(save_errno));
errdir, save_errno, strerror(save_errno));
else
syslog(LOG_ERR, "FREEZE of / failed; error:%d %s", save_errno,
strerror(save_errno));
out:
endmntent(mounts);
return error;
}