diff options
| author | Jeremy Allison <jra@samba.org> | 2014-07-29 14:12:31 -0700 |
|---|---|---|
| committer | David Disseldorp <ddiss@samba.org> | 2014-07-30 13:32:47 +0200 |
| commit | 6abeff5f46d2d46332a36018370b69ebb547799f (patch) | |
| tree | 97f0eb7bead6f5207096377bc505b06cb08fbf36 /source3 | |
| parent | 9919c90ca8622ef4c9bb3753518a9bffd0c4f3b9 (diff) | |
| download | samba-6abeff5f46d2d46332a36018370b69ebb547799f.tar.gz samba-6abeff5f46d2d46332a36018370b69ebb547799f.tar.xz samba-6abeff5f46d2d46332a36018370b69ebb547799f.zip | |
s3: net time - fix usage and core dump.
Bug 10728 - 'net time system' segfaults
https://bugzilla.samba.org/show_bug.cgi?id=10728
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Autobuild-User(master): David Disseldorp <ddiss@samba.org>
Autobuild-Date(master): Wed Jul 30 13:32:47 CEST 2014 on sn-devel-104
Diffstat (limited to 'source3')
| -rw-r--r-- | source3/utils/net_time.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/source3/utils/net_time.c b/source3/utils/net_time.c index 847b4fe445..56ce8f71ad 100644 --- a/source3/utils/net_time.c +++ b/source3/utils/net_time.c @@ -84,10 +84,10 @@ static const char *systime(time_t t) int net_time_usage(struct net_context *c, int argc, const char **argv) { d_printf(_( -"net time\n\tdisplays time on a server\n\n" -"net time system\n\tdisplays time on a server in a format ready for /bin/date\n\n" -"net time set\n\truns /bin/date with the time from the server\n\n" -"net time zone\n\tdisplays the timezone in hours from GMT on the remote computer\n\n" +"net time\n\tdisplays time on a server (-S server)\n\n" +"net time system\n\tdisplays time on a server (-S server) in a format ready for /bin/date\n\n" +"net time set\n\truns /bin/date with the time from the server (-S server)\n\n" +"net time zone\n\tdisplays the timezone in hours from GMT on the remote server (-S server)\n\n" "\n")); net_common_flags_usage(c, argc, argv); return -1; @@ -99,6 +99,16 @@ static int net_time_set(struct net_context *c, int argc, const char **argv) struct timeval tv; int result; + if (c->display_usage || c->opt_host == NULL) { + d_printf( "%s\n" + "net time set\n" + " %s\n", + _("Usage:"), + _("Set local time to that of remote time " + "server (-S server) ")); + return 0; + } + tv.tv_sec = nettime(c, NULL); tv.tv_usec=0; @@ -118,13 +128,13 @@ static int net_time_system(struct net_context *c, int argc, const char **argv) { time_t t; - if (c->display_usage) { + if (c->display_usage || c->opt_host == NULL) { d_printf( "%s\n" "net time system\n" " %s\n", _("Usage:"), - _("Output remote time server time in a format " - "ready for /bin/date")); + _("Output remote time server (-S server) " + "time in a format ready for /bin/date")); return 0; } @@ -144,13 +154,13 @@ static int net_time_zone(struct net_context *c, int argc, const char **argv) char zsign; time_t t; - if (c->display_usage) { + if (c->display_usage || c->opt_host == NULL) { d_printf( "%s\n" "net time zone\n" " %s\n", _("Usage:"), - _("Display the remote time server's offset to " - "UTC")); + _("Display the remote time server's (-S server) " + "offset to UTC")); return 0; } |
