Apply patch: ncpfs-hg-commit-431.patch
This commit is contained in:
@@ -146,49 +146,44 @@ init_queue(struct ncp_conn *conn, char *queue_name, char *command,
|
||||
}
|
||||
|
||||
|
||||
static char*
|
||||
add_string(char* target, char* target_end, const char *str) {
|
||||
size_t len = strlen(str);
|
||||
|
||||
if (target + len + 1 > target_end) {
|
||||
len = target_end - target - 1;
|
||||
}
|
||||
memcpy(target, str, len);
|
||||
return target + len;
|
||||
}
|
||||
|
||||
static void
|
||||
build_command(struct nw_queue *q, struct queue_job *j,
|
||||
char *target, int target_size, char *user)
|
||||
char *target, size_t target_size, char *user)
|
||||
{
|
||||
char *s = q->command;
|
||||
char *target_end = target + target_size;
|
||||
|
||||
static void add_string(const char *str)
|
||||
{
|
||||
int len = strlen(str);
|
||||
if (target + len + 1 > target_end)
|
||||
{
|
||||
len = target_end - target - 1;
|
||||
}
|
||||
strncpy(target, str, len);
|
||||
target += len;
|
||||
}
|
||||
|
||||
memset(target, 0, target_size);
|
||||
|
||||
while ((*s != 0) && (target < target_end))
|
||||
{
|
||||
if (*s != '%')
|
||||
{
|
||||
*target = *s;
|
||||
target += 1;
|
||||
s += 1;
|
||||
if (*s != '%') {
|
||||
*target++ = *s++;
|
||||
continue;
|
||||
}
|
||||
switch (*(s + 1))
|
||||
{
|
||||
switch (*(s + 1)) {
|
||||
case '%':
|
||||
*target = '%';
|
||||
target += 1;
|
||||
*target++ = '%';
|
||||
break;
|
||||
case 'u':
|
||||
add_string(user);
|
||||
target = add_string(target, target_end, user);
|
||||
break;
|
||||
case 'd':
|
||||
if (j->j.JobTextDescription[0])
|
||||
add_string(j->j.JobTextDescription);
|
||||
target = add_string(target, target_end, j->j.JobTextDescription);
|
||||
else
|
||||
add_string(_("No Description"));
|
||||
target = add_string(target, target_end, _("No Description"));
|
||||
break;
|
||||
default:
|
||||
*target = '%';
|
||||
|
||||
Reference in New Issue
Block a user