diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-11-13 10:50:55 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:15:47 -0500 |
commit | 287d68daab89c78748b90849c9782473784b6a84 (patch) | |
tree | f75874b959feddf78bfaa27a76fa96a8b6b6d7be /source | |
parent | afd7f12124b02b594063535f93903a8a598a0587 (diff) | |
download | samba-287d68daab89c78748b90849c9782473784b6a84.tar.gz samba-287d68daab89c78748b90849c9782473784b6a84.tar.xz samba-287d68daab89c78748b90849c9782473784b6a84.zip |
r19689: Fix a NULL dereference found by coverity (the call to strlen).
Jerry, please check this. The way I understood alpha_strcpy the last arg needs
to be the size of the target, not of the source.
Thanks,
Volker
Diffstat (limited to 'source')
-rw-r--r-- | source/rpc_server/srv_winreg_nt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/rpc_server/srv_winreg_nt.c b/source/rpc_server/srv_winreg_nt.c index a892a9bb8d4..1a130f19b6a 100644 --- a/source/rpc_server/srv_winreg_nt.c +++ b/source/rpc_server/srv_winreg_nt.c @@ -689,12 +689,14 @@ WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, uint16_t *hostname, str /* pull the message string and perform necessary sanity checks on it */ + chkmsg[0] = '\0'; + if ( message && message->name && message->name->name ) { if ( (msg = talloc_strdup(p->mem_ctx, message->name->name )) == NULL ) { return WERR_NOMEM; } + alpha_strcpy (chkmsg, msg, NULL, sizeof(chkmsg)); } - alpha_strcpy (chkmsg, msg?msg:"", NULL, strlen(msg)); fstr_sprintf(str_timeout, "%d", timeout); fstr_sprintf(r, reboot ? SHUTDOWN_R_STRING : ""); |