Browse Source

Unbreak ggatec and ggatel on i386 after r238119, which added two more

'struct g_gate_ctl_create' fields.

While the behaviour was technically undefined on other architectures
as well, on the reporter's amd64 systems the uninitialized bytes the
kernel cares about were always zero so everything worked as expected.

PR:		197309, 199559
Submitted by:	ota@j.email.ne.jp, Fabian Keil
Reviewed by:	pjd
MFC after:	1 week
tags/ggatessh-v1.0.0
brueffer 9 years ago
parent
commit
befef73259
2 changed files with 2 additions and 0 deletions
  1. +1
    -0
      ggatec/ggatec.c
  2. +1
    -0
      ggatel/ggatel.c

+ 1
- 0
ggatec/ggatec.c View File

@@ -447,6 +447,7 @@ g_gatec_create(void)
/* /*
* Ok, got both sockets, time to create provider. * Ok, got both sockets, time to create provider.
*/ */
memset(&ggioc, 0, sizeof(ggioc));
ggioc.gctl_version = G_GATE_VERSION; ggioc.gctl_version = G_GATE_VERSION;
ggioc.gctl_mediasize = mediasize; ggioc.gctl_mediasize = mediasize;
ggioc.gctl_sectorsize = sectorsize; ggioc.gctl_sectorsize = sectorsize;


+ 1
- 0
ggatel/ggatel.c View File

@@ -173,6 +173,7 @@ g_gatel_create(void)
fd = open(path, g_gate_openflags(flags) | O_DIRECT | O_FSYNC); fd = open(path, g_gate_openflags(flags) | O_DIRECT | O_FSYNC);
if (fd == -1) if (fd == -1)
err(EXIT_FAILURE, "Cannot open %s", path); err(EXIT_FAILURE, "Cannot open %s", path);
memset(&ggioc, 0, sizeof(ggioc));
ggioc.gctl_version = G_GATE_VERSION; ggioc.gctl_version = G_GATE_VERSION;
ggioc.gctl_unit = unit; ggioc.gctl_unit = unit;
ggioc.gctl_mediasize = g_gate_mediasize(fd); ggioc.gctl_mediasize = g_gate_mediasize(fd);


Loading…
Cancel
Save