mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 00:41:08 +00:00
core: avoid use of C array as buffer in Log_root
This commit is contained in:
parent
de52cf1cdd
commit
bbfc092a31
repos/base/src/core/include
@ -30,12 +30,7 @@ namespace Genode {
|
||||
*/
|
||||
Log_session_component *_create_session(const char *args) override
|
||||
{
|
||||
char label_buf[Log_session_component::LABEL_LEN];
|
||||
|
||||
Arg label_arg = Arg_string::find_arg(args, "label");
|
||||
label_arg.string(label_buf, sizeof(label_buf), "");
|
||||
|
||||
return new (md_alloc()) Log_session_component(label_buf);
|
||||
return new (md_alloc()) Log_session_component(label_from_args(args));
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -17,27 +17,23 @@
|
||||
#include <util/string.h>
|
||||
#include <base/log.h>
|
||||
#include <base/rpc_server.h>
|
||||
#include <base/session_label.h>
|
||||
#include <log_session/log_session.h>
|
||||
|
||||
namespace Genode {
|
||||
|
||||
class Log_session_component : public Rpc_object<Log_session>
|
||||
{
|
||||
public:
|
||||
|
||||
enum { LABEL_LEN = 128 };
|
||||
|
||||
private:
|
||||
|
||||
char _label[LABEL_LEN];
|
||||
Session_label const _label;
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
Log_session_component(const char *label) {
|
||||
strncpy(_label, label, sizeof(_label)); }
|
||||
Log_session_component(Session_label const &label) : _label(label) { }
|
||||
|
||||
|
||||
/*****************
|
||||
@ -61,14 +57,14 @@ namespace Genode {
|
||||
if (string[i] == '\n') {
|
||||
memcpy(buf, string + from_i, i - from_i);
|
||||
buf[i - from_i] = 0;
|
||||
log("[", Cstring(_label), "] ", Cstring(buf));
|
||||
log("[", _label, "] ", Cstring(buf));
|
||||
from_i = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* if last character of string was not a line break, add one */
|
||||
if (from_i < len)
|
||||
log("[", Cstring(_label), "] ", Cstring(string + from_i));
|
||||
log("[", _label, "] ", Cstring(string + from_i));
|
||||
|
||||
return len;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user